2

関数ドライバーとしてWinUSBドライバー(winusb.sys)を使用しているUSBデバイスがあります。次に、このデバイスにアクセスするビデオキャプチャドライバー(カーネルモードドライバーである必要があります)を作成する必要があります。

私の質問は、カーネルモードからWinUSBデバイスにアクセスして操作できますか?もしそうなら、そうするためのドキュメントはありますか?

私が見つけたすべてのドキュメントは、WinUSB.dllを使用してユーザーモードからWinUSBにアクセスすることについて話しているが、これは私にとってのオプションではない。IoGetDeviceObjectPointer()を使用して、USBデバイスで通信しているUSBパイプに必要なファイルハンドルを取得しようとしましたが、呼び出しは常にSTATUS_ACCESS_DENIEDで失敗します。USBデバイス用に独自のKMDFドライバーを作成できることは知っていますが、既に配置されているWinUSBドライバーを使用する方がはるかに簡単です。

どんな助けでも大歓迎です。

4

1 に答える 1

0

これはうまくいくかもしれません...しかし、それを行うのは非常に困難です。

カーネルモードでwinusbデバイスにI/O要求を送信できます。WinUSB関数を使用して通信することはできません。実際のIO要求を使用して、あるI/Oスタックから別のI/Oスタックに通信する必要があります。

USBデバイス用のAVStreamミニポートドライバーを作成しましたが、USB部分は難しい部分ではないと言えます。特に、ミニポートモードでkmdfUSBIOキューを使用する場合。

于 2012-09-14T14:23:07.757 に答える