PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACKコールバック関数 (fltkernel.h)
ミニフィルター ドライバーは、ミニフィルター ドライバーの InstanceQueryTeardownCallback ルーチンとして PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 型のルーチンを登録できます。
構文
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK PfltInstanceQueryTeardownCallback;
NTSTATUS PfltInstanceQueryTeardownCallback(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] FLT_INSTANCE_QUERY_TEARDOWN_FLAGS Flags
)
{...}
パラメーター
[in] FltObjects
現在の操作に関連するオブジェクトの不透明なポインターを含む FLT_RELATED_OBJECTS 構造体へのポインター。
[in] Flags
指定されたインスタンス クエリの破棄コールバック ルーチンが呼び出された理由を記述するフラグのビットマスク。 フラグは現在定義されていません。
戻り値
このコールバック ルーチンは、次のいずれかの STATUS_SUCCESS または NTSTATUS 値を返します。
リターン コード | 形容 |
---|---|
|
この状態値を返した場合、ミニフィルター ドライバー インスタンスがデタッチされなくなります。 これはエラー コードです。 |
備考
ミニフィルター ドライバーは、DriverEntry ルーチンから FltRegisterFilter 呼び出すことによって自身を登録するときに、ミニフィルター ドライバーの InstanceQueryTeardownCallback ルーチンとして PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 型のルーチンを登録できます。
InstanceQueryTeardownCallback ルーチンを登録するために、ミニフィルター ドライバーは、fltRegisterFilter の 登録 パラメーターとして渡す FLT_REGISTRATION 構造体の InstanceQueryTeardownCallback メンバーに PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 型のルーチンのアドレス格納します。
フィルター マネージャーは、ミニフィルター ドライバーが手動デタッチ要求に応答できるように、このルーチンを呼び出します。 このような要求は、ユーザー モード アプリケーションが FilterDetach 呼び出すか、カーネル モード コンポーネントが FltDetachVolume 呼び出すときに受信されます。
このルーチンは、ミニフィルター ドライバーがアンロードされたときやボリュームがマウント解除された場合など、自動または必須のデタッチ要求には呼び出されません。
このルーチンが NTSTATUS コード エラーまたは警告 (STATUS_FLT_DO_NOT_DETACHなど) を返す場合、ミニフィルター ドライバー インスタンスはボリュームからデタッチされません。 それ以外の場合、インスタンスはデタッチされます。
ミニフィルター ドライバーが InstanceQueryTeardownCallback ルーチンを定義していない場合、FilterDetach を呼び出すか、FltDetachVolume してインスタンスを手動でデタッチすることはできません。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | デスクトップ |
ヘッダー | fltkernel.h (Fltkernel.h を含む) |
IRQL | PASSIVE_LEVEL |
関連項目
FltDetachVolume の
FltRegisterFilter の