MFCで無線マネージャドライバが記述されているWinCEデバイスを使用しています。Radio GUIのコードでは、特定のIOCTLが呼び出されている関数Deviceiocontrolを確認できます。ただし、この関数によって呼び出された特定のコードを追跡することはできません。誰かがDeviceiocontrolがどのように機能するか教えてもらえますか?
1205 次
2 に答える
3
DeviceIoControlは、ファイルハンドルを使用してデバイスドライバーを呼び出します。デバイスドライバ自体にステップインする場合は、カーネルデバッガを使用する必要があります。
ファイルハンドルは、関数テーブルを含むDEVICE_OBJECT構造で構成されるカーネルオブジェクトを表します。このテーブルのIRP_MJ_DEVICE_CONTROLのインデックスで、ドライバーはハンドル機能を設定します。次に、関数はIRPにパッケージ化されたio制御パラメーターを使用して呼び出されます。
于 2010-04-21T12:35:56.090 に答える
0
IOCTLが送信されるドライバーのソースコードはありますか?
ハンドルをに渡します-ハンドルは、レジストリに設定されているドライバのプレフィックスである-XXXDeviceIoControl
への呼び出しを使用して開かれます。CreateFile(L"XXX#:",...)
#は、ロード時にドライバーが提供するインデックスです(レジストリで設定することもできます)。実行される機能を確認するには、ドライバーのソースコードで
送信先のIOCTLを検索します。DeviceIoControl
のドライバーの実装にありXXX_IoControl
ます。
于 2010-04-28T13:28:08.147 に答える