我正在尝试使用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 回答
SetupApi日志将提供更多信息,无论它是否足以解决问题,我不确定 . 我有一个类似的问题,虽然日志是全面的,但他们在这个场合没有帮助 .
无论哪种方式,您都需要启用一些注册表 . 有关详细信息,请参阅此处: - 抱歉,只需重新阅读该帖子即可 . 看起来你've looked at the logs. I can'告诉你帖子的详细程度设置,所以你可以查看你的SetupAPI日志是否被设置为最详细,看看你是否可以获得更多信息 . 您可以在此处查看设置:
https://msdn.microsoft.com/en-us/library/windows/hardware/ff550808%28v=vs.85%29.aspx
基本上,您需要更改此注册表中的值:
此外,从您报告的最后一个错误,因为它是一个v4驱动程序,它听起来很可能是由于Windows 8签署的驱动程序执行规则 . 它需要安装和信任证书 . 如果不是,它将无法安装驱动程序 .
假设您只是想让测试目的起作用,这里有两个选项,您可以: