我需要创建一个WDM驱动程序来模拟不存在的设备。当操作系统启动,通过SetupDiXXX
和CreateFile
打开和关闭,需要响应DeviceIoControl
等时,需要加载驱动程序。
我已经对驱动程序进行了编码,但是XP拒绝加载它。系统事件查看器说:
鉴于此,我认为问题出在INF文件中(在下面引用)。是吗?我应该如何解决?
;; MyDevice.inf
[版本]
签名=“$ Windows 95 $”
Class = MyDeviceDeviceClass
ClassGUID = {ff646f80-8def-11d2-9449-00105a075f6b}
Provider =%ProviderName%
DriverVer = 12/21/2009,1.0.0.1
[ClassInstall32]
Addreg = Class_AddReg
[Class_AddReg]
HKR,%,DeviceClassName%
HKR,“Icon”“-18”
[DestinationDirs]
MyDevice_Files_Driver = 10,System32\Drivers
[制造商]
%MfgName%= Mfg0
[Mfg0]
%DeviceDesc%= MyDevice_DDI,*我的设备
[MyDevice_DDI]
CopyFiles = MyDevice_Files_Driver
AddReg = MyDevice_9X_AddReg
[MyDevice_DDI.NT]
CopyFiles = MyDevice_Files_Driver
AddReg = MyDevice_NT_AddReg
[MyDevice_DDI.NT.Services]
Addservice = MyDevice,0x00000002,MyDevice_AddService
[MyDevice_AddService]
DisplayName =%SvcDesc%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary =%10%\System32\Drivers\MyDevice.sys
[MyDevice_NT_AddReg]
HKLM,“系统\CurrentControlSet\服务\MyDevice\参数”,“BreakOnEntry”,0x00010001、0
[MyDevice_Files_Driver]
MyDevice.sys
[字串]
ProviderName =“Acme”
MfgName =“Acme”
DeviceDesc =“Acme”
DeviceClassName =“MyDevice的设备类”
SvcDesc =“MyDevice NT服务”
最佳答案
自我回答:
我将INF更改为包括以下内容:
“\ipm1”是新的,在我眼中有点巫毒教。我是从克里斯·坎特(Chris Cant)的“编写Windows WDM设备驱动程序”的示例中获得的。
最大的变化是使用控制面板中的“添加新硬件”向导来安装驱动程序。右键单击仅安装INF是不够的。我怀疑原因是它调用了PnP管理器,该管理器正确地找不到驱动程序要控制的硬件。