J'ai besoin de créer un pilote WDM qui émule un périphérique qui n'est pas présent. Le pilote doit être chargé lorsque l'O/S bottes, ouvert et fermé par SetupDiXXX
et CreateFile
, doit répondre à DeviceIoControl
, etc.Comment puis-je développer un pilote Windows qui ne touche pas le matériel?
J'ai le pilote codé, mais XP refuse de le charger. Le spectateur des événements système dit:
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.
Étant donné que, je pense que le problème est dans le fichier INF (référence ci-dessous). Est-ce? Comment dois-je faire pour le réparer?
;; 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"
Je ne connais pas la réponse, mais des projets comme l'émulateur Null-modem (http://com0com.sourceforge.net/) indiquent que c'est possible. Peut-être pourriez-vous glaner quelque chose en regardant ce projet? –
Le pilote com0com est proche de ce dont j'avais besoin, mais pas à 100% de la solution: j'ai également dû installer le pilote à partir du panneau de configuration "Ajout de nouveau matériel". Juste le clic droit sur l'installation de l'INF n'était pas suffisant. – Clay