操作前と操作後のコールバック ルーチンの記述

DriverEntry ルーチンでは、ミニフィルター ドライバーは、フィルター処理する必要がある I/O 操作の種類ごとに、最大 1 つの 操作前コールバック ルーチン と最大 1 つの 操作後コールバック ルーチン を登録できます。

従来のファイル システム フィルター ドライバーとは異なり、ミニフィルター ドライバーは、フィルター処理する I/O 操作の種類を選択できます。 ミニフィルター ドライバーは 操作後コールバック ルーチン を登録せずに、特定の種類の I/O 操作の操作前コールバック ルーチンを登録できます。その逆も同様です。 ミニフィルター ドライバーは、操作前または操作後コールバック ルーチンを登録した I/O 操作の種類のみを受け取ります。

操作前コールバック ルーチン は、レガシ フィルター ドライバー モデルのディスパッチ ルーチンに似ています。 フィルター マネージャーは、I/O 操作を処理するときに、この種類の I/O 操作に対して 1 つを登録したミニフィルター ドライバー インスタンス スタック内の各ミニフィルター ドライバーの操作前コールバック ルーチンを呼び出します。 スタックの最上位のミニフィルター ドライバー。つまり、インスタンスの高度が最も高いミニフィルター ドライバーは、最初に操作を受け取ります。 ミニフィルター ドライバーは、操作の処理を完了すると、フィルター マネージャーに操作を返し、次に高いミニフィルター ドライバーに操作を渡します。 ミニフィルター ドライバー インスタンス スタック内のすべてのミニフィルター ドライバーが I/O 操作を処理した場合--ミニフィルター ドライバーが I/O 操作を完了していない限り、フィルター マネージャーは、レガシ フィルターとファイル システムに操作を送信します。

操作後コールバック ルーチン は、レガシ フィルター ドライバー モデルの完了ルーチンに似ています。 I/O 操作の完了処理は、I/O マネージャーが操作をファイル システムと、操作の完了ルーチンが登録されているレガシ フィルターに渡すと開始されます。 これらの完了ルーチンが完了すると、フィルター マネージャーは操作の完了処理を実行します。 フィルター マネージャーは、この種類の I/O 操作の 1 つを登録しているミニフィルター ドライバー インスタンス スタック内の各ミニフィルター ドライバーの操作後コールバック ルーチンを呼び出します。 スタックの最下位のミニフィルター ドライバー。つまり、インスタンスの高度が最も低いミニフィルター ドライバーは、最初に操作を受け取ります。 ミニフィルター ドライバーは、操作の処理を完了すると、フィルター マネージャーに操作を返し、次に低いミニフィルター ドライバーに操作を渡します。

このセクションには、次が含まれます。

操作前と操作後のコールバック ルーチンの登録

ミニフィルター ドライバーでの I/O 操作のフィルタリング

操作前コールバック ルーチンの記述

操作後コールバック ルーチンの記述

I/O 操作用のパラメーターの修正

I/O 操作用のバッファー処理メソッドの確認

I/O 操作用のユーザー バッファーへのアクセス