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 の Registration パラメーターとして渡される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 |