次の方法で共有


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 ルーチンを登録するために、ミニフィルター ドライバーは、fltRegisterFilterRegistration パラメーターとして渡されるFLT_REGISTRATION構造体の InstanceQueryTeardownCallback メンバーにPFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK型のルーチンのアドレスを格納します。

フィルター マネージャーはこのルーチンを呼び出して、ミニフィルター ドライバーが手動デタッチ要求に応答できるようにします。 このような要求は、ユーザー モード アプリケーションが FilterDetach を呼び出すか、カーネル モード コンポーネントが FltDetachVolume を呼び出したときに受信されます。

ミニフィルター ドライバーがアンロードされた場合やボリュームがマウント解除された場合など、自動または必須のデタッチ要求では、このルーチンは呼び出されません。

このルーチンがエラーまたは警告 NTSTATUS コード ( STATUS_FLT_DO_NOT_DETACH など) を返す場合、ミニフィルター ドライバー インスタンスはボリュームからデタッチされません。 それ以外の場合、インスタンスはデタッチされます。

ミニフィルター ドライバーで InstanceQueryTeardownCallback ルーチンが定義されていない場合、FilterDetach または FltDetachVolume呼び出してインスタンスを手動でデタッチすることはできません。

要件

要件
対象プラットフォーム デスクトップ
Header fltkernel.h (Fltkernel.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK