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



我正在尝试使用WDK和打印驱动程序v4创建虚拟打印驱动程序。我想在系统中安装虚拟打印机,在打印时显示我自己的UI-在理想的情况下是.NET win或wpf表单。最后,虚拟打印机将联系web服务,并将XPS文件+XML发送到那里,其中包含在UI中输入的元数据。

我尝试使用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中的日志信息不是很有用-表示"调用COM组件时返回错误HRESULT E_FAIL"

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

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

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

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

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

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

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

给出错误-"已处理证书链,但在信任提供程序不信任的根证书中终止"。我的测试证书安装在测试机器上的受信任根证书中。。

  • 我应该启用/检查哪个日志或使用哪个工具,以便查看更好的错误消息或找到一些可能的错误信息

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签署的驱动程序强制规则造成的。它需要一个证书才能安装和信任。否则,它将无法安装驱动程序。

假设你只是想让事情以测试为目的,这里有两个选项,你可以:

  • 已禁用已签名的驱动程序强制(请参阅此处https://learn.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option)

Bcdedit.exe-在上设置TESTSIGNING

  • 在目标设备上安装您使用的证书

最新更新