Question

Je dois créer un pilote WDM qui émule un dispositif qui est pas présent. Le pilote doit être chargé lors du démarrage O / S, ouvert et fermé par SetupDiXXX et CreateFile, doit répondre à DeviceIoControl, etc.

J'ai le pilote codé, mais XP refuse de le charger. Le spectateur des événements système dit:

  

Le service MyDevice n'a pas   démarrer en raison de l'erreur suivante: Le   le service ne peut pas être démarré   parce qu'il est désactivé ou parce qu'il   n'a pas périphérique activé associé   il.

Étant donné que, je pense que le problème est dans le fichier INF (référence ci-dessous). Est-il? Comment dois-je prendre pour le corriger?

;; 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"
Était-ce utile?

La solution

Self a répondu:

J'ai changé l'INF inclure les éléments suivants:

  

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

Le « \ IPM1 » est nouvelle, et un peu voodoo à mes yeux. Je l'ai d'un exemple dans les "Drvers Device WDM écriture Windows" de Chris Cant.

Le grand changement utilise l'assistant « Ajout de nouveau matériel » à partir du panneau de commande pour installer le pilote. Faites un clic droit l'installation INF ne suffit pas. Je soupçonne que la raison est qu'il invoque le gestionnaire PnP qui échoue correctement pour trouver le matériel pour le conducteur à contrôler.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top