v4打印驱动的虚拟打印机驱动程序INF配置

4
我正在尝试使用WDK和打印驱动程序v4创建虚拟打印机。我希望在系统中安装虚拟打印机,并在打印时显示自己的UI - 理想情况下是.NET win或wpf表单。最终,虚拟打印机将联系Web服务,并将XPS文件+包含在UI中输入的元数据的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

我有一台测试电脑用于部署驱动程序(在HyperV中的Win 8.1系统)。Visual Studio 在部署时返回了错误。不幸的是,C:\DriverTest\Logs 中的日志信息并不是很有用 - 只说了“Error HRESULT E_FAIL has been returned from call to a COM component”。

我还尝试通过运行命令手动安装驱动程序:

rundll32 printui.dll,PrintUIEntry /ia /f "D:\Driver\MyV4PrintDriver.inf" /m "Test print driver"

但是我收到了0x80004005 - 未指定错误。

日志文件% windir%\ inf \ setupapi。*也不包含任何错误消息。 - 运行Visual Studio和运行命令进行部署的日志的zip文件在此处

我的问题是: - 有没有人知道可能出了什么问题? - 我的INF文件语法是否正确,特别是硬件ID部分? - 我没有HWID,因为我正在安装虚拟打印机:

[Standard.NT$ARCH$]
%PrinterName%=DriverInstall,,test_virtual_printer
  • 驱动程序包使用测试证书签名,但运行

    signtool verify /v /c myv4printdriver.cab myv4printdriver.inf

会出现错误 - “证书链已处理,但终止于不被信任的信任提供者的根证书”。我的测试证书已安装在受信任的根证书中。

  • 我应该启用/检查哪个日志或使用哪个工具,以便查看更好的错误消息或找到有关问题的可能信息?
1个回答

2
SetupApi日志将提供更多信息,无论它是否足以解决问题,我不确定。我曾经遇到过类似的问题,尽管这些日志很全面,但在这种情况下它们并没有帮助。

无论如何,您需要启用一些注册表。有关详细信息,请参见此处:- 对不起,我重新阅读了帖子。看起来您已经查看了日志。我无法从您的帖子中确定详细程度设置,因此您可以进行审查,以查看是否将SetupAPI日志设置为最详细以获取其他信息。您可以在此处查看设置:

https://msdn.microsoft.com/en-us/library/windows/hardware/ff550808%28v=vs.85%29.aspx

基本上,您需要更改此注册表中的值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Setup\LogLevel
此外,从您报告的最后一个错误来看,由于它是v4驱动程序,很可能是由于Windows 8签名驱动程序执行规则所致。它需要安装和信任证书。如果没有,它将无法安装驱动程序。
假设您只是想为测试目的使事情正常工作,这里有两个选项,您可以:
1. 禁用签名驱动程序执行(请参见https://learn.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option
Bcdedit.exe -set TESTSIGNING ON
2. 在目标设备上安装您正在使用的证书

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接