存在しないデバイスをエミュレートするWDMドライバーを作成する必要があります。SetupDiXXX
O / Sの起動時、およびを介して開閉するとき、CreateFile
に応答する必要があるときDeviceIoControl
などに、ドライバをロードする必要があります。
ドライバーをコーディングしましたが、XPはそれをロードすることを拒否します。システムイベントビューアは次のように述べています。
次のエラーが原因で、MyDeviceサービスを開始できませんでした。サービスが無効になっているか、有効なデバイスが関連付けられていないため、サービスを開始できません。
それを考えると、問題はINFファイルにあると思います(以下の参照)。それは...ですか?どうすれば修正できますか?
;; MyDevice.inf [バージョン] 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 [メーカー] %MfgName%= Mfg0 [製造0] %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 [文字列] ProviderName = "Acme" MfgName = "Acme" DeviceDesc = "Acme" DeviceClassName="MyDeviceのデバイスクラス" SvcDesc ="MyDeviceNTサービス"