DispatchCreate、DispatchClose、DispatchCreateClose ルーチン

ドライバーの DRIVER_DISPATCH IRP には、IRP_MJ_CREATEIRP_MJ_CLOSE の 2 つの I/O 関数コードがあります。 または、DispatchCreateClose ルーチンを組み合わせて、これら両方の I/O 関数コードの IRP を処理することもできます。

作成要求を開始するには 2 とおりの方法があります。1 つは、ユーザー モード サブシステムが、デバイスを表すファイル オブジェクトへのハンドルを取得しようと試みる方法であり (場合によっては、アプリケーションやサブシステム レベルのドライバーに代わって行う操作)、もう 1 つは上位ドライバーから IoGetDeviceObjectPointerIoAttachDevice を呼び出す方法です。

相互クローズ要求は、ドライバーのデバイス オブジェクトに関連付けられているファイル オブジェクト ハンドルのユーザー モード サブシステムを終了することで発生します。

これらの各要求は本質的に同期的です。