web-dev-qa-db-ja.com

仮想USBデバイスの作成

私は、USBデバイス用のWDMデバイスドライバーの書き方を学んでいる初心者で、入手できる資料が非常に理解しにくいことがわかりました(DDKオンラインドキュメントは読みにくいものの1つであり、OneyによるWDMデバイスドライバーの本はそうではありません」より良いもの)。

簡単な質問があります。テスト/学習用の仮想USBデバイス(たとえば、USBポートに接続された実際のUSBマウスのように見える仮想USBマウス)を作成する場合、どこから始めますか。

これまでのところ、HIDClassドライバー(hidclass.sys)には、接続されたUSBハードウェアの列挙を実行するusbバス(hidusb.sys)用のミニドライバーがあります。したがって、ハードウェア列挙プロセスをハイジャックして独自の仮想ハードウェアを作成する場合、ハードウェア列挙プロセスに関連するいくつかのIRPをインターセプトするためのフィルタードライバーをどこかに含める必要がありますか?

私はまだ学習段階にあるので、上記がまったく意味をなさない場合は申し訳ありません。これは実際に、USBデバイスドライバーの作成を改善するために役立つと思われる演習の1つです。

19
JavaMan

デバイスシミュレーションフレームワーク(DSF)を使用します。

http://msdn.Microsoft.com/en-us/library/windows/hardware/gg454516.aspx

4
Amir Saniyan

USB/IPプロジェクトを使用して、必要なデバイスをエミュレートできます。私のブログでは、USBマウスデバイスをpython USB/IPプロジェクトを使用してエミュレートする方法を示しました: http://breaking-the-system.blogspot.com/2014/08 /emulating-usb-devices-in-python-with-no.html

仮想USBデバイスの作成方法を理解するのに役立ちません(プロセスはUSB/IPドライバーで行われ、コードを読み取ることができます)が、仮想USB HIDデバイスを作成し、送信されたHID引数で遊ぶことができますUSBドライバーに。

2
Yaron Shani

独自のバスタイプと列挙子を提供する方が理にかなっていますか?

1
Simon Richter