2017-07-30 7 views
0

デバイスドライバがユーザモードアプリケーションにデータを送信する方法を探していました。たとえば、私は特定のプロセスIDをユーザーモードでデバイスドライバに送信し、デバイスドライバは何らかの計算を行った後にユーザーモードに戻します。 私のデバイスドライバはIOCTLで動作します。そこで、私は一度、PIRP構造の構造として、ユーザーモードのアプリケーションに送るためのスペース/バッファがあると思っていました。これに関する多くの調査の後、有用な参考情報、使用のための情報はありません。誰も私にこの問題の手がかりを与えてくれますか? 少しでも助けていただければ幸いです。前もって感謝します。デバイスドライバのデータをユーザモードアプリケーションに送信

答えて

0

DeviceIoControl APIを呼び出すと、MajorFunction [IRP_MJ_DEVICE_CONTROL]の指定されたルーチンが呼び出されます。

上記のとおり、IRPへのポインタが表示されます。定義したIOCTLのタイプに基づいて、このケースではユーザーモードアプリケーションである呼び出し先にデータを送信できます。 MSDNによる

:この転送タイプについてhttps://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/buffer-descriptions-for-i-o-control-codes

METHOD_BUFFERED 、のIRPはIrp-> AssociatedIrp.SystemBufferのバッファへのポインタを供給する。このバッファは、DeviceIoControlおよびIoBuildDeviceIoControlRequestの呼び出しで指定された入力バッファと出力バッファの両方を表します。ドライバは、このバッファの中から、このバッファの中にデータを転送します。

関連する問題