FLT_CONTEXT_REGISTRATION 結構 (fltkernel.h)

FLT_CONTEXT_REGISTRATION 結構可用來註冊內容類型。

語法

typedef struct _FLT_CONTEXT_REGISTRATION {
  FLT_CONTEXT_TYPE               ContextType;
  FLT_CONTEXT_REGISTRATION_FLAGS Flags;
  PFLT_CONTEXT_CLEANUP_CALLBACK  ContextCleanupCallback;
  SIZE_T                         Size;
  ULONG                          PoolTag;
  PFLT_CONTEXT_ALLOCATE_CALLBACK ContextAllocateCallback;
  PFLT_CONTEXT_FREE_CALLBACK     ContextFreeCallback;
  PVOID                          Reserved1;
} FLT_CONTEXT_REGISTRATION, *PFLT_CONTEXT_REGISTRATION;

成員

ContextType

內容的類型。 此成員是必要的,而且必須是下列其中一個值:

FLT_FILE_CONTEXT (Windows Vista 和更新版本。)

FLT_INSTANCE_CONTEXT

FLT_STREAM_CONTEXT

FLT_STREAMHANDLE_CONTEXT

FLT_SECTION_CONTEXT (Windows 8及更新版本 only.)

FLT_TRANSACTION_CONTEXT (Windows Vista 和更新版本 only.)

FLT_VOLUME_CONTEXT

Flags

旗標的位掩碼,指定篩選管理員如何從固定大小內容的外觀清單中配置新內容。 這個成員可以是零或下列值。

旗標 意義
FLTFL_CONTEXT_REGISTRATION_NO_EXACT_SIZE_MATCH 如果迷你篩選程式使用固定大小的內容,而且已指定此旗標,則篩選管理員會在 lookaside 清單中的內容大小大於或等於要求的大小時,從 lookaside 清單中配置內容。 否則,只有在 lookaside 清單中的內容大小等於要求的大小時,篩選管理員才會從 lookaside 清單配置內容。

ContextCleanupCallback

類型 PFLT_CONTEXT_CLEANUP_CALLBACK 之迷你篩選定義ContextCleanupCallback例程的指標。 篩選管理員會在刪除內容之前立即呼叫此例程。 如果迷你篩選器沒有記憶體或指標可清除內容內部,則此成員是選擇性的,而且可以是 NULL

Size

如果迷你篩選程式使用固定大小內容,則內容定義部分的大小,以位元組為單位。 零是有效的大小值。 如果迷你篩選使用可變大小的內容,則需要此成員,且必須設定為 FLT_VARIABLE_SIZED_CONTEXTS。

PoolTag

要用於內容的集區標籤。 這個標記指定為一到四個 7 位 ASCII 字元的字串,會出現在發生之系統的任何損毀傾印中。 如果 ContextAllocateCallback 成員為 NULL,則此成員為必要且不可為零。

ContextAllocateCallback

類型 PFLT_CONTEXT_ALLOCATE_CALLBACK的迷你篩選定義ContextAllocateCallback例程的指標。 此成員是選擇性的,可以是 NULL。 如果不是 NULL則會忽略 SizePoolTag 成員。

ContextFreeCallback

類型 PFLT_CONTEXT_FREE_CALLBACK 之迷你篩選定義ContextFreeCallback例程的指標。 此成員是選擇性的,可以是 NULL。 如果不是 NULL則會忽略 SizePoolTag 成員。

Reserved1

保留供系統使用。 Minifilters 必須將此成員設定為 NULL

備註

當迷你篩選從其 DriverEntry 例程呼叫 FltRegisterFilter 時,它必須註冊它所使用的每個內容類型。

為了註冊這些內容類型,minifilter 會建立FLT_CONTEXT_REGISTRATION結構的可變長度陣列,並將數位的指標儲存在minifilter作為 FltRegisterFilter註冊參數的 FLT_REGISTRATION 結構之 ContextRegistration 成員中。 這個陣列的最後一個項目必須是 {FLT_CONTEXT_END}。

針對迷你篩選使用的每個內容類型,迷你篩選程序必須根據下列規則至少提供一個FLT_CONTEXT_REGISTRATION結構:

  • 如果迷你篩選程式提供具有非 NULL ContextAllocateCallback 成員的FLT_CONTEXT_REGISTRATION結構,它就無法為該內容類型提供任何其他FLT_CONTEXT_REGISTRATION結構。
  • 如果迷你篩選器提供兩個或多個相同的FLT_CONTEXT_REGISTRATION結構,則只會使用第一個結構。 其他專案將會被忽略。
  • 每個內容類型只能提供一個具有 大小 成員FLT_VARIABLE_SIZED_CONTEXTS的 FLT_CONTEXT_REGISTRATION 結構。
  • 每個內容類型只能提供 大小成員以外的 三個FLT_CONTEXT_REGISTRATION結構FLT_VARIABLE_SIZED_CONTEXTS。

規格需求

需求
標頭 fltkernel.h (包含 Fltkernel.h)

另請參閱

FLT_REGISTRATION

FltRegisterFilter

PFLT_CONTEXT_ALLOCATE_CALLBACK

PFLT_CONTEXT_CLEANUP_CALLBACK

PFLT_CONTEXT_FREE_CALLBACK