3

我正在尝试使用 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 运行部署和运行命令的日志压缩在这里

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

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

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

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

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

1 回答 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 签名的驱动程序执行规则造成的。它需要安装和信任证书。如果不是,它将无法安装驱动程序。

假设您只想让事情用于测试目的,这里有两个选项,您可以:

Bcdedit.exe -set TESTSIGNING ON

  • 在目标设备上安装您使用的证书
于 2015-03-19T16:10:45.007 回答