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 或下列各項的組合。

意義
FLTFL_REGISTRATION_DO_NOT_SUPPORT_SERVICE_STOP
如果已設定此旗標,即使 FilterUnloadCallback 成員不是 NULL,也不會卸除迷你篩選程式以回應服務停止要求。
FLTFL_REGISTRATION_SUPPORT_NPFS_MSFS
如果設定此旗標,迷你篩選程式將支持篩選命名管道和 mailslot 要求。 此旗標是在 Windows 8 中引進。
FLTFL_REGISTRATION_SUPPORT_DAX_VOLUME
如果設定此旗標,迷你篩選程式將支援附加至直接存取 (DAX) 磁碟區。 這表示篩選管理員會篩選 DAX 磁碟區。 此旗標是在 Windows 10 1607 版中引進。

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 結構所提供的資訊。

迷你篩選驅動程式可以同時將 NormalizeNameComponentCallbackNormalizeNameComponentExCallback 成員設定為 NULL;不過,名稱提供者迷你篩選驅動程式必須註冊 NormalizeNameComponentCallbackNormalizeNameComponentExCallback 回 呼例程,或兩者。 例如,沒有其他 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)

另請參閱

FLT_CONTEXT_REGISTRATION

FLT_OPERATION_REGISTRATION

FltRegisterFilter

PFLT_FILTER_UNLOAD_CALLBACK

PFLT_GENERATE_FILE_NAME

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_NORMALIZE_CONTEXT_CLEANUP

PFLT_NORMALIZE_NAME_COMPONENT

PFLT_NORMALIZE_NAME_COMPONENT_EX

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK

PFLT_TRANSACTION_NOTIFICATION_CALLBACK