Как я могу разработать драйвер Windows, который не касается оборудования? - PullRequest
6 голосов
/ 22 декабря 2009

Мне нужно создать драйвер 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"

1 Ответ

4 голосов
/ 22 декабря 2009

Ответил себе:

Я изменил INF для включения следующего:

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

"\ ipm1" новый и немного вуду в моих глазах. Я получил это из примера Криса Кэнта «Написание драйверов для устройств WDM Windows».

Большое изменение заключается в использовании мастера «Установка нового оборудования» с панели управления для установки драйвера. Щелчок правой кнопкой мыши установки INF не достаточно. Я подозреваю, что причина в том, что он вызывает PnP-менеджер, который не может найти аппаратное обеспечение для драйвера.

...