ディスパッチ ルーチンの記述

I/O 要求パケット (IRP) の処理は、ドライバーが IRP のメジャー関数コード (IRP_MJ_*XXX) を処理するために登録するディスパッチ ルーチンで開始されます。ドライバーの DriverEntry ルーチンは、ドライバーの DRIVER_OBJECT* 構造体内のディスパッチ テーブルにあるディスパッチ ルーチンのエントリ ポイントをエクスポートします。

ドライバーは、処理する主要な I/O 関数コードごとに個別のディスパッチ ルーチンを提供できます。 または、ディスパッチ ルーチンを記述して複数の I/O 関数コードを処理することもできます。

このセクションでは、以下のトピックについて説明します:

ディスパッチ ルーチンの機能

必須のディスパッチ ルーチン

オプションのディスパッチ ルーチン

ディスパッチ ルーチンと IRQL

ドライバーの I/O スタック位置を確認すべき場合

DispatchCreate、DispatchClose、DispatchCreateClose ルーチン

DispatchCleanup ルーチン

DispatchRead、DispatchWrite、DispatchReadWrite ルーチン

DispatchDeviceControl および DispatchInternalDeviceControl ルーチン

DispatchPnP ルーチン

DispatchPower ルーチン

DispatchQueryInformation ルーチン

DispatchSetInformation ルーチン

DispatchFlushBuffers ルーチン

DispatchShutdown ルーチン

DispatchSystemControl ルーチン