FLT_REGISTRATION 結構 (fltkernel.h)
FLT_REGISTRATION 結構會當做參數傳遞至 FltRegisterFilter。
語法
typedef struct _FLT_REGISTRATION {
USHORT Size;
USHORT Version;
FLT_REGISTRATION_FLAGS Flags;
const FLT_CONTEXT_REGISTRATION *ContextRegistration;
const FLT_OPERATION_REGISTRATION *OperationRegistration;
PFLT_FILTER_UNLOAD_CALLBACK FilterUnloadCallback;
PFLT_INSTANCE_SETUP_CALLBACK InstanceSetupCallback;
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK InstanceQueryTeardownCallback;
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownStartCallback;
PFLT_INSTANCE_TEARDOWN_CALLBACK InstanceTeardownCompleteCallback;
PFLT_GENERATE_FILE_NAME GenerateFileNameCallback;
PFLT_NORMALIZE_NAME_COMPONENT NormalizeNameComponentCallback;
PFLT_NORMALIZE_CONTEXT_CLEANUP NormalizeContextCleanupCallback;
PFLT_TRANSACTION_NOTIFICATION_CALLBACK TransactionNotificationCallback;
PFLT_NORMALIZE_NAME_COMPONENT_EX NormalizeNameComponentExCallback;
PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK SectionNotificationCallback;
} FLT_REGISTRATION, *PFLT_REGISTRATION;
成員
Size
FLT_REGISTRATION 結構的大小,以位元組為單位。 迷你篩選驅動程式必須將此成員設定為 sizeof (FLT_REGISTRATION) 。
Version
FLT_REGISTRATION 結構的修訂層級。 迷你篩選驅動程式必須將此成員設定為 FLT_REGISTRATION_VERSION。
Flags
迷你篩選註冊旗標的位掩碼。 此成員可以是 NULL 或下列各項的組合。
ContextRegistration
FLT_CONTEXT_REGISTRATION 結構的可變長度陣列,針對迷你篩選所使用的每個內容類型各有一個。 數位列中的最後一個項目必須是 {FLT_CONTEXT_END}。 此成員是選擇性的,可以是 NULL。
OperationRegistration
FLT_OPERATION_REGISTRATION 結構的可變 長度陣列,每個 I/O 類型都有一個,迷你篩選器會註冊預先操作 (PFLT_PRE_OPERATION_CALLBACK) 和 後續操作 (PFLT_POST_OPERATION_CALLBACK) 回呼例程。 數位列中的最後一個項目必須是 {IRP_MJ_OPERATION_END}。 此成員是選擇性的,可以是 NULL。
FilterUnloadCallback
要註冊為迷你篩選程式的 FilterUnloadCallback 例程之例程PFLT_FILTER_UNLOAD_CALLBACK型別的指標。 此成員是選擇性的,可以是 NULL。 請注意,如果為此例程指定 NULL ,則永遠不會卸除篩選條件。
InstanceSetupCallback
要註冊為迷你篩選器的 InstanceSetupCallback 例程之例程PFLT_INSTANCE_SETUP_CALLBACK型別的指標。 此成員是選擇性的,可以是 NULL。 請注意,如果為此例程指定 NULL ,則一律會建立附件。
InstanceQueryTeardownCallback
要註冊為 minifilter 的 InstanceQueryTeardownCallback 例程之例程PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK例程的指標。 此成員是選擇性的,可以是 NULL。 請注意,如果為此例程指定 NULL ,則永遠不會手動卸離實例。
InstanceTeardownStartCallback
要註冊為 minifilter 的 InstanceTeardownStartCallback 例程之例程PFLT_INSTANCE_TEARDOWN_CALLBACK型別的指標。 此成員是選擇性的,可以是 NULL。
InstanceTeardownCompleteCallback
要註冊為 minifilter 實例TeardownCompleteCallback 例程之型別PFLT_INSTANCE_TEARDOWN_CALLBACK例程的指標。 此成員是選擇性的,可以是 NULL。
GenerateFileNameCallback
要註冊為迷你篩選程式 GenerateFileNameCallback 例程之例程之例程PFLT_GENERATE_FILE_NAME的指標。 此成員是選擇性的,可以是 NULL。
NormalizeNameComponentCallback
要註冊為迷你篩選器的 NormalizeNameComponentCallback 例程之例程PFLT_NORMALIZE_NAME_COMPONENT例程的指標。 此成員是選擇性的,可以是 NULL。
NormalizeContextCleanupCallback
要註冊為迷你篩選器的 NormalizeContextCleanupCallback 例程之例程PFLT_NORMALIZE_CONTEXT_CLEANUP型別的指標。 此成員是選擇性的,可以是 NULL。
TransactionNotificationCallback
(Windows Vista 和更新版本.) 要註冊為迷你篩選程式 TransactionNotificationCallback 例程之例程的指標PFLT_TRANSACTION_NOTIFICATION_CALLBACK。 此成員是選擇性的,可以是 NULL。
NormalizeNameComponentExCallback
(Windows Vista 和更新版本.) 要註冊為迷你篩選驅動程式 NormalizeNameComponentExCallback 例程之例程的指標PFLT_NORMALIZE_NAME_COMPONENT_EX。 此成員是選擇性的,可以是 NULL。
相較於 NormalizeNameComponentCallback 回 呼例程, NormalizeNameComponentExCallback 回 呼例程支援其他檔案物件參數 FileObject (類型PFILE_OBJECT) 。 迷你篩選驅動程式可以使用此參數來取得其他資訊,例如 TXN_PARAMETER_BLOCK 結構所提供的資訊。
迷你篩選驅動程式可以同時將 NormalizeNameComponentCallback 和 NormalizeNameComponentExCallback 成員設定為 NULL;不過,名稱提供者迷你篩選驅動程式必須註冊 NormalizeNameComponentCallback 或 NormalizeNameComponentExCallback 回 呼例程,或兩者。 例如,沒有其他 FileObject 參數用途的名稱提供者 minifilter 驅動程式可以將 NormalizeNameComponentExCallback 成員設定為 NULL ,而且只提供 NormalizeNameComponentCallback 回 呼例程。
迷你篩選驅動程式可以提供 NormalizeNameComponentCallback 回 呼和 NormalizeNameComponentExCallback 回 呼。 在此情況下,從 Windows Vista 開始,篩選管理員只會使用 NormalizeNameComponentExCallback 回 呼;對於 Windows Vista 之前的 Windows 作業系統,篩選管理員只會使用 NormalizeNameComponentCallback 回 呼。 這可讓相同的迷你篩選驅動程式二進位檔在所有作業系統版本下執行。
SectionNotificationCallback
要註冊為迷你篩選器的 SectionNotificationCallback 例程之例程PFLT_SECTION_CONFLICT_NOTIFICATION_CALLBACK例程的指標。 此成員是選擇性的,可以是 NULL。 針對 使用 FltCreateSectionForDatascan 所建立區段的 I/O 失敗通知,會呼叫此回呼。
備註
FLT_REGISTRATION 結構可用來提供文件系統迷你篩選器的相關信息,例如 FilterUnloadCallback (PFLT_FILTER_UNLOAD_CALLBACK) 例程和預先操作 (PFLT_PRE_OPERATION_CALLBACK) 和 後置 (PFLT_POST_OPERATION_CALLBACK 回 呼例程) 篩選管理員。 minifilter 會將這個結構的指標當做 Registration 參數傳遞至 FltRegisterFilter。
規格需求
需求 | 值 |
---|---|
標頭 | fltkernel.h (包含 Fltkernel.h) |
另請參閱
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP