次の方法で共有


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 値を返します。

リターン コード 形容
STATUS_FLT_DO_NOT_DETACH
この状態値を返した場合、ミニフィルター ドライバー インスタンスがデタッチされなくなります。 これはエラー コードです。

備考

ミニフィルター ドライバーは、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

関連項目

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK