Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
安装Windows示例端口监视器localmon时出错_Windows_Printing_Device Driver_Wdk - Fatal编程技术网

安装Windows示例端口监视器localmon时出错

安装Windows示例端口监视器localmon时出错,windows,printing,device-driver,wdk,Windows,Printing,Device Driver,Wdk,我正在尝试安装WDK中提供的windows示例端口监视器(localmon)。但我在安装时不断出错: 安装端口监视器“DDK示例端口监视器”时出错。请联系制造商寻求帮助 我正在使用以下说明安装它:- 打开“设备和打印机”文件夹。右键单击我的目标打印机并选择“打印机属性”。单击“端口”选项卡,然后单击“添加端口…”按钮。在“打印机端口”对话框中,单击“新建端口类型…”按钮。在文本输入框中键入INF文件的路径,然后单击“确定” 我使用的是Windows7,64位版本。下面是我的INF文件 ; mon

我正在尝试安装WDK中提供的windows示例端口监视器(localmon)。但我在安装时不断出错:

安装端口监视器“DDK示例端口监视器”时出错。请联系制造商寻求帮助

我正在使用以下说明安装它:-

打开“设备和打印机”文件夹。右键单击我的目标打印机并选择“打印机属性”。单击“端口”选项卡,然后单击“添加端口…”按钮。在“打印机端口”对话框中,单击“新建端口类型…”按钮。在文本输入框中键入INF文件的路径,然后单击“确定”

我使用的是Windows7,64位版本。下面是我的INF文件

; monitor.inf
;
; Installation inf for printer port monitor
;
; (c) Copyright 2001-2003 DDK Example for print monitor installation
;

[Version]
Signature="$Windows NT$"
Provider=%PMProducer%
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer

[PortMonitors]
"DDK Sample Port Monitor" = sampleportmon

[sampleportmon]
CopyFiles=@ddklocalmon.dll, @ddklocalui.dll
PortMonitorDll=ddklocalmon.dll

[SourceDisksFiles]
ddklocalmon.dll=1,,
ddklocalui.dll=1,,

[SourceDisksNames]
1="Sample Port Monitor Installation Disk",,,

[Strings]
PMProducer="Sample Port Monitor Company, Inc."
有人能帮我吗


非常感谢

我终于解决了这个问题。这是一个权限问题。在windows 7中,使用管理员权限访问打印机属性的方法是通过控制面板、系统和安全、管理工具,然后右键单击“打印管理”,然后以管理员身份运行。一旦我这样做了,我就能够安装端口监视器。

问题之旅 在端口监视器的INF文件中,需要将端口监视器DLL安装到Windows\System32中

根据语言端口监视器的WDK示例,可以认为[DestinationDirs]目录id可能是66002。请注意,端口监视器示例.inf省略了提供[DestinationDir]部分。

打印机dirid的文档似乎证实了这一点。

Dirid:66002;用途:表示要复制到本地系统\System32的其他文件的目录路径。见下表的段落。;目录内容:打印监视器文件

请注意,INFGate工具将提供以下警告:

\monitor.inf(xx):警告8503:(DW22.23.8503)使用DirID 66002会阻止完全远程/点式和打印安装。

然而,这在实践中仍然不起作用。再次尝试使用66002安装端口监视器会出现与我们开始时相同的错误

Installing Port Monitor
---------------------------
An error occurred installing port monitor 'DDK sample port monitor'. Please contact the  manufacturer for assistance.
---------------------------
OK   
---------------------------
解决方案 驱动程序文档有另一个目录ID列表,还有另一个:

11系统目录。对于Windows 2000及更高版本的Windows,这相当于%SystemRoot%\system32

我的经验是,在Windows XP上,系统目录使用Dirid值11,端口监视器使用Dirid值10

[DestinationDirs] 
DefaultDestDir = 11
请注意,尽管INFGate可以正常工作,但它仍然会对不鼓励使用它的行为发出警告。
\monitor.inf(56):不建议使用警告8505:(DW22.23.8505)DirID DefaultDestDir=11。应在66000-66004范围内,以支持远程安装。

DLL是否构建为64位?@CareyGregory:是的,它们是。我使用正确的构建环境构建了它们。获取Dependency Walker(64位版本)的副本,并确保其所有依赖DLL都存在于计算机上@谢谢你的帮助。DependencyWalker报告了一个无法访问的DLL(ieshims.DLL)。我必须添加一个path to,path环境变量才能访问它。但是,即使DependencyWalker现在没有报告任何丢失的DLL,我仍然会收到相同的错误。Ieshims.DLL不必担心。几乎所有的东西都找不到。我刚刚完全按照WDK构建了localmon端口监视器。它的安装没有问题。您是否更改了任何示例代码?您是否将ddklocalmon.dll和ddklocalmonui.dll与.INF文件放在同一目录中?我一直认为您是以管理员身份登录的。任何类型的驱动程序安装或打印机管理都需要管理员权限。@CareyGregory:我是以管理员身份登录的。但windows要求您以管理员身份显式运行某些程序,即使您是以管理员身份登录的。是的,如果您启用了UAC。作为将来的参考,在启用AUC的情况下开发驱动程序和打印机组件是一个非常头痛的问题。建议您关闭开发计算机上的UAC。@CareyGregory:完成!谢谢你的提示:)@CareyGregory:你好,凯莉!你能帮我一下吗?
[DestinationDirs] 
DefaultDestDir = 11