PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK回呼函式 (fltkernel.h)

迷你篩選驅動程式可以註冊類型 為 PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 的例程,做為迷你篩選驅動程式的 InstanceQueryTeardownCallback 例程。

語法

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_SUCCESSNTSTATUS 值,例如下列其中一項:

傳回碼 Description
STATUS_FLT_DO_NOT_DETACH
傳回此狀態值可防止中斷連結迷你篩選驅動程序實例。 這是錯誤碼。

備註

當 minifilter 驅動程式從其 DriverEntry 例程呼叫 FltRegisterFilter 來註冊本身時,它可以註冊類型為 PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 的例程,作為 minifilter 驅動程式的 InstanceQueryTeardownCallback 例程。

若要註冊 InstanceQueryTeardownCallback 例程,迷你篩選驅動程式會將類型PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK例程的地址儲存在minifilter驅動程式傳遞為 FltRegisterFilter註冊參數之FLT_REGISTRATION結構的 InstanceQueryTeardownCallback 成員中。

篩選管理員會呼叫此例程,以允許迷你篩選驅動程序回應手動卸離要求。 當使用者模式應用程式呼叫 FilterDetach 或內核模式元件呼叫 FltDetachVolume 時,就會收到這類要求。

例如,卸除迷你篩選驅動程式或卸除磁碟區時,不會針對自動或強制卸離要求呼叫此例程。

如果這個例程傳回錯誤或警告 NTSTATUS 程式代碼,例如 STATUS_FLT_DO_NOT_DETACH,則迷你篩選驅動程序實例不會與磁碟區中斷連結。 否則,實例會中斷連結。

如果迷你篩選驅動程式未定義 InstanceQueryTeardownCallback 例程,則無法藉由呼叫 FilterDetachFltDetachVolume 手動卸離其實例。

規格需求

需求
目標平台 桌面
標頭 fltkernel.h (包含 Fltkernel.h)
IRQL PASSIVE_LEVEL

另請參閱

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FilterDetach

FltDetachVolume

FltRegisterFilter

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK