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, 則會忽略 Size 和 PoolTag 成員。
ContextFreeCallback
類型為 PFLT_CONTEXT_FREE_CALLBACK 之迷你篩選定義ContextFreeCallback例程的指標。 此成員是選擇性的,可以是 NULL。 如果不是 NULL, 則會忽略 Size 和 PoolTag 成員。
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) |