共用方式為


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

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

小型篩選驅動程式可以同時將 NormalizeNameComponentCallbackNormalizeNameComponentExCallback 成員設定為 NULL;不過,名稱提供者迷你篩選驅動程式必須註冊 NormalizeNameComponentCallbackNormalizeNameComponentExCallback 回呼例程,或兩者。 例如,名稱提供者 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 結構可用來將文件系統小型篩選的相關信息,例如 FilterUnloadCallbackPFLT_FILTER_UNLOAD_CALLBACK) 例程和預先作 (PFLT_PRE_OPERATION_CALLBACK) 和後續作 (PFLT_POST_OPERATION_CALLBACK) 回呼例程,提供給篩選管理員。 迷你篩選會將指標傳遞至此結構,做為 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