DispatchCreate、DispatchClose、DispatchCreateClose ルーチン
ドライバーの DRIVER_DISPATCH IRP には、IRP_MJ_CREATE と IRP_MJ_CLOSE の 2 つの I/O 関数コードがあります。 または、DispatchCreateClose ルーチンを組み合わせて、これら両方の I/O 関数コードの IRP を処理することもできます。
作成要求を開始するには 2 とおりの方法があります。1 つは、ユーザー モード サブシステムが、デバイスを表すファイル オブジェクトへのハンドルを取得しようと試みる方法であり (場合によっては、アプリケーションやサブシステム レベルのドライバーに代わって行う操作)、もう 1 つは上位ドライバーから IoGetDeviceObjectPointer や IoAttachDevice を呼び出す方法です。
相互クローズ要求は、ドライバーのデバイス オブジェクトに関連付けられているファイル オブジェクト ハンドルのユーザー モード サブシステムを終了することで発生します。
これらの各要求は本質的に同期的です。