どのように私は、ハードウェアには触れていないWindowsドライバを開発することができますか?
質問
私は存在しないデバイスをエミュレートする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"
解決
セルフ答えます:
私は次を含めるようにINFを変更します:
[Mfg0] %DeviceDesc%= MyDevice_DDI、* MYDEVICE \ ipm1
は「\ ipm1は」新しく、私の目に少しブードゥー。私はクリス・カントの「書き込みのWindows WDMデバイスDrvers」の例からそれを得ています。
大きな変化は、ドライバをインストールするには、コントロールパネルから「新しいハードウェアの追加」ウィザードを使用しています。右クリックし、INFをインストールするには十分ではありません。私は、その理由は、それが正しく制御するドライバのためのハードウェアを見つけることができないPnPマネージャを起動することである疑います。
所属していません StackOverflow