どのように私は、ハードウェアには触れていないWindowsドライバを開発することができますか?

StackOverflow https://stackoverflow.com/questions/1944146

  •  20-09-2019
  •  | 
  •  

質問

私は存在しないデバイスをエミュレートするWDMドライバを作成する必要があります。ドライバは、

など、開いたときにO / Sのブーツ、ロードする必要があるとSetupDiXXXCreateFileを経由して閉じ、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マネージャを起動することである疑います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top