我是打印机制造商的软件开发人员。最近问过司机。所以我开始挖掘教程,样本,文章。
我做的第一件事是,我下载了Windows驱动程序工具包7600.16385.1。我安装它,使用一些示例驱动程序构建它(例如,仅通用/文本)。我更改了inf文件中的制造商部分并且工作正常。但我要求做更具体的驱动程序,从任何可以打印并将其发送到我们打印机的应用程序中获取数据。
此时我做了一些额外的挖掘,安装Visual Studio 2013和winddk 8.1。我开箱即用v4打印机驱动程序样本。我设法建立了它(Inf到cat表现得很奇怪,所以我禁用了它的项目特性)。然后我尝试安装带有新驱动程序的打印机。驱动程序软件根本没有安装。我通过inf语法,发现了一些错误并解决了问题。之后我不断收到0x00000002错误。我设法解决问题,然后我得到0x0000003错误。
所以,我写下了一个inf intaller c#项目,设法安装驱动程序。驱动程序显示在打印机驱动程序部分,但我尝试安装新的打印机,安装不断失败,错误0x0000003。我做了一些关于错误的搜索,我发现它的path_not_found错误。我检查我的inf文件,做一些语法检查。我付出了一些努力,但我不断收到错误0x0000003。
我为解决问题做了什么?
在论坛中,人们说这是一个特权问题,导致Windows凭据出现此错误。我设置了新的管理员帐户并安装了驱动程序。但是在尝试设置时,打印机错误是相同的。
我调查了windows文件夹下的windows日志:setupapi.dev.log和setupact.log。在本节中,我发现0x0000002错误,但未找到0x000003错误。这对我没用。
论坛中的一些人说可能是预先安装的驱动程序和打印机导致问题。我卸载system32 driverstore下的驱动程序和打印机。同时卸载控制面板下的打印机服务和打印机部分。结果是一样的。
我找到了channel9,它的微软开发网络有点像。我找到了一些关于开发的视频教程和幻灯片。我看过HW-328T,HW-238T,HW-979P,HW-981P,HW-903T,HW-322T。这个视频给了我一些见解,但仅此而已。
所以我一直在挖掘问题,使用windows的eventwiever工具。找到HRESULT 0x80070003错误。这是一个打印机后台处理程序错误日志说。我重新启动假脱机程序,错误继续,我重新启动服务并重新启动计算机,错误继续。
我尝试了我的驱动程序注册表编辑器的旧条目。结果是一样的。我设法得到了Windows文件夹的管理员权限,它没有什么不同。
我尝试使用带有admin privlidges的命令行安装新打印机,结果相同。
无数次尝试在64位和32位窗口上安装。
我也尝试使用GPD,PPD类型。
我的代码示例。
INF文件
[Version]
Signature="$Windows NT$"
Class=Printer
ClassGuid={4D36E979-E325-11CE-BFC1-08002BE10318}
Provider=%ManufacturerName%
CatalogFile=Ali.cat
ClassVer=4.0
DriverVer=08/01/2012,1.0.0.0
[DestinationDirs]
DefaultDestDir = 66000
[Manufacturer]
%ManufacturerName%=Ali,NTia64,NTamd64
[Ali]
"Ali V1" = Ali.GPD
[Ali.NTia64]
"Ali V1" = Ali.GPD
[Ali.NTamd64]
"Ali V1" = Ali.GPD
[SourceDisksNames.amd64]
1= %DiskName%,,,
[SourceDisksFiles.amd64]
Ali.gpd = 1
[SourceDisksNames.ia64]
1= %DiskName%,,,
[SourceDisksFiles.ia64]
Ali.gpd = 1
[Strings]
ManufacturerName="Ali"
DiskName="Ali Installation Disk"
用于安装inf文件的我的C#功能代码
if (SetupCopyOEMInf(inf_path, "", 2, 0x0000400, null, 0, 0, null))
提前致谢。
注意:如果需要,我也可以发布gpd文件。
答案 0 :(得分:1)
看来你在INF文件中没有看起来像这样的副本部分:
[Ali.GPD]
CopyFiles=@Ali.gpd
Inf文件要求知道要复制的文件。 这是相关的MSDN doc on this topic。
希望这有帮助。
答案 1 :(得分:0)
首先,您必须考虑您的处理器体系结构。绝对不能在基于x86或ARM的体系结构上使用驱动程序,因为示例.inf文件中未包含相关部分。
此外,.inf文件中没有安装部分(“复制文件”指令),但必须包含(特别是如果您打算使用基于INF的安装API的话)。有关创建最小工作.inf文件的信息,请参见here。
最后,如何安装打印机驱动程序?您是否使用驱动程序包?如果是,当您提到在工作中绕过inf2cat进程时如何签名? (可能是由于您正在“禁用驱动程序签名强制执行”模式下进行开发!)。否则,如果没有任何.gpd或.ppt文件,您将如何安装打印机?您对打印机有什么期望?
通过添加一些代码段,也许人们可以提供更多帮助。