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

时间:2014-10-09 08:42:51

标签: windows printing driver wdk inf

我正在尝试使用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

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

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

1 个答案:

答案 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

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