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
要註冊為 minifilter InstanceSetupCallback 例程之類型 PFLT_INSTANCE_SETUP_CALLBACK 例程的指標。 這個成員是選擇性的,而且可以 NULL。 請注意,如果為此例程指定 NULL,則一律會建立附件。
InstanceQueryTeardownCallback
要註冊為迷你篩選程式 InstanceQueryTeardownCallback 例程之類型 PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK 例程的指標。 這個成員是選擇性的,而且可以 NULL。 請注意,如果為此例程指定了 NULL,則永遠不會手動卸離實例。
InstanceTeardownStartCallback
要註冊為 minifilter InstanceTeardownStartCallback 例程之類型 PFLT_INSTANCE_TEARDOWN_CALLBACK 例程的指標。 這個成員是選擇性的,而且可以 NULL。
InstanceTeardownCompleteCallback
要註冊為迷你篩選程式 InstanceTeardownCompleteCallback 例程之類型 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 回呼例程,或兩者。 例如,名稱提供者 minifilter 驅動程式對於其他 FileObject 參數沒有用處,可以將 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) 回呼例程,提供給篩選管理員。 迷你篩選會將指標傳遞至此結構,做為 Registration 參數,以 FltRegisterFilter。
要求
要求 | 價值 |
---|---|
標頭 | fltkernel.h (包括 Fltkernel.h) |
另請參閱
PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK
PFLT_INSTANCE_TEARDOWN_CALLBACK
PFLT_NORMALIZE_CONTEXT_CLEANUP