我正在尝试使用WDK和打印驱动程序v4创建虚拟打印驱动程序。我想在系统中安装虚拟打印机,在打印时显示我自己的UI - 理想情况下是.NET win或wpf形式。最后,虚拟打印机将联系Web服务,并将发送包含在UI中输入的元数据的XPS文件+ XML。
我尝试使用v4驱动程序。到目前为止,我尝试在Visual Studio 2013中修改打印机项目,这是我的inf文件:
[Version]
Signature="$Windows NT$"
Class=Printer
ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318}
Provider=%ManufacturerName%
CatalogFile=MyV4PrintDriver.cat
ClassVer=4.0
DriverVer=08/01/2012,1.0.0.0
[DestinationDirs]
DefaultDestDir = 66000
[SourceDisksNames]
1 = %DiskName%,,,""
[SourceDisksFiles]
MyV4PrintDriver.gpd=1
MyV4PrintDriver-manifest.ini=1
[Manufacturer]
%ManufacturerName%=Standard,NT$ARCH$
[Standard.NT$ARCH$]
%PrinterName%=DriverInstall,,test_virtual_printer
[Strings]
ManufacturerName="My company"
PrinterName="Test print driver"
DiskName="MyV4PrintDriver Installation Disk"
[DriverInstall]
CopyFiles=DriverFiles
[DriverFiles]
MyV4PrintDriver.gpd
MyV4PrintDriver-manifest.ini
我有测试PC将驱动程序部署到(HyperV中的Win 8.1)。 Visual Studio在部署时返回错误。不幸的是,C:\ DriverTest \ Logs中的日志信息不是很有用 - 说“错误HRESULT E_FAIL已从调用COM组件返回”
我还尝试通过运行命令手动安装驱动程序:
rundll32 printui.dll,PrintUIEntry /ia /f "D:\Driver\MyV4PrintDriver.inf" /m "Test print driver"
但我收到0x80004005 - 未指明错误。
日志文件%windir%\ inf \ setupapi。*也不包含任何错误消息。 - 使用Visual Studio运行部署的日志和运行命令的zip是here
我的问题是: - 有谁知道什么可能是错的? - 我的INF文件语法是否正确,特别是硬件ID的部分? - 因为我正在安装虚拟打印机,所以没有HWID:
[Standard.NT$ARCH$]
%PrinterName%=DriverInstall,,test_virtual_printer
驱动程序包使用测试证书签名,但正在运行
signtool verify / v / c myv4printdriver.cab myv4printdriver.inf
给出错误 - “已处理证书链,但终止于信任提供程序不信任的根证书”。我的测试证书安装在受信任的根证书中的测试计算机上。
答案 0 :(得分:2)
SetupApi日志将提供更多信息,无论它是否足以解决问题,我不确定。我有类似的问题,虽然日志很全面,但在这种情况下它们并没有帮助。
无论哪种方式,您都需要启用一些注册表。有关详细信息,请参阅此处: - 抱歉,只需重新阅读该帖子即可。看起来你已经查看了日志。我无法通过您的帖子告诉详细程度设置,因此您可以查看您的SetupAPI日志是否设置为最详细,以查看是否可以获取其他信息。您可以在此处查看设置:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff550808%28v=vs.85%29.aspx
基本上,您需要更改此注册表中的值:
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \ SETUP \ LogLevel的
此外,从您报告的上一个错误中,由于它是v4驱动程序,因此很可能是因为Windows 8签名的驱动程序实施规则。它需要安装和信任证书。如果不是,则无法安装驱动程序。
假设您只是想让测试目的起作用,这里有两个选项,您可以:
Bcdedit.exe -set TESTSIGNING ON