首页 文章

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

提问于
浏览
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运行部署的日志和运行命令的zip包含here

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

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

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

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

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

1 回答

  • 2

    SetupApi日志将提供更多信息,无论它是否足以解决问题,我不确定 . 我有一个类似的问题,虽然日志是全面的,但他们在这个场合没有帮助 .

    无论哪种方式,您都需要启用一些注册表 . 有关详细信息,请参阅此处: - 抱歉,只需重新阅读该帖子即可 . 看起来你've looked at the logs. I can'告诉你帖子的详细程度设置,所以你可以查看你的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

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

相关问题