Мне нужно создать драйвер WDM, который эмулирует устройство, которого нет. Драйвер должен быть загружен, когда O / S загружается, открывается и закрывается через SetupDiXXX
и CreateFile
, должен отвечать на DeviceIoControl
и т. Д.
У меня есть драйвер, но XP отказывается его загружать. Средство просмотра системных событий говорит:
Служба MyDevice не смогла
начать из-за следующей ошибки:
служба не может быть запущена, либо
потому что он отключен или потому что
не имеет активных устройств, связанных с
это.
Учитывая это, я думаю, что проблема в 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"