2009-12-22 29 views
6

我需要创建一个模拟不存在的设备的WDM驱动程序。该驱动程序需要在O/S靴子,打开并通过SetupDiXXXCreateFile关闭被加载,需要到DeviceIoControl响应等如何开发不接触硬件的Windows驱动程序?

我有司机编码,但XP拒绝加载它。系统事件查看器说:

The MyDevice service failed to start due to the following error: The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.

鉴于此,我认为这个问题是在INF文件(以下参考文献)。是吗?我应该如何解决它?

 
;; MyDevice.inf 

[Version] 
Signature="$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 


[Manufacturer] 
%MfgName%=Mfg0 

[Mfg0] 
%DeviceDesc%=MyDevice_DDI, *MyDevice 


[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, "System\CurrentControlSet\Services\MyDevice\Parameters","BreakOnEntry", 0x00010001, 0 

[MyDevice_Files_Driver] 
MyDevice.sys 


[Strings] 
ProviderName="Acme" 
MfgName="Acme" 
DeviceDesc="Acme" 
DeviceClassName="Device class for MyDevice" 
SvcDesc="MyDevice NT service" 
+1

我不知道答案,但像Null-modem模拟器(http://com0com.sourceforge.net/)这样的项目表明它是可能的。也许你可以通过查看这个项目来收集一些东西? –

+0

com0com驱动程序接近我所需要的,但不是100%的解决方案:我还必须从控制面板“添加新硬件”安装驱动程序。只需右键单击安装INF是不够的。 – Clay

回答

4

自我回答:

我改变了对INF包括以下内容:

[Mfg0] %DeviceDesc%=MyDevice_DDI, *MyDevice\ipm1

的 “\ IPM1” 是新的,在我的眼睛有点巫术。我从Chris Cant的“编写Windows WDM设备驱动程序”的例子中得到了它。

大的变化是使用控制面板中的“添加新硬件”向导安装驱动程序。右键单击安装INF是不够的。我怀疑是因为它调用了PnP管理器,它正确无法找到驱动程序控制的硬件。

相关问题