存在しないデバイスをエミュレートするWDMドライバーを作成する必要があります。SetupDiXXXO / 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サービス"