FltGetContextsEx 函式 (fltkernel.h)

FltGetContextsEx 例程會擷取與目前作業相關物件的迷你篩選驅動程序內容。

語法

NTSTATUS FLTAPI FltGetContextsEx(
  [in]  PCFLT_RELATED_OBJECTS    FltObjects,
  [in]  FLT_CONTEXT_TYPE         DesiredContexts,
  [in]  SIZE_T                   ContextsSize,
  [out] PFLT_RELATED_CONTEXTS_EX Contexts
);

參數

[in] FltObjects

FLT_RELATED_OBJECTS結構的指標,其中包含與目前作業相關的物件不透明指標。 如需詳細資訊,請參閱「備註」。

[in] DesiredContexts

識別要擷取的內容類型。 此參數可以是下列值的位 OR。

常數
FLT_VOLUME_CONTEXT 0x0001
FLT_INSTANCE_CONTEXT 0x0002
FLT_FILE_CONTEXT 0x0004
FLT_STREAM_CONTEXT 0x0008
FLT_STREAMHANDLE_CONTEXT 0x0010
FLT_TRANSACTION_CONTEXT 0x0020
FLT_SECTION_CONTEXT 020040
FLT_ALL_CONTEXTS 所有內容值的位 OR

[in] ContextsSize

Contexts 所指向之FLT_RELATED_CONTEXTS_EX結構的大小,以位元組為單位。 設定為 sizeof (FLT_RELATED_CONTEXTS_EX) 。

[out] Contexts

呼叫端配置的 FLT_RELATED_CONTEXTS 結構的指標,該結構會接收要求的內容。 這個參數是必要的,而且無法設定為 NULL。 FltMgr 會將 結構成員設定為零,

  • 呼叫端未要求的內容。
  • 呼叫端要求但 FltMgr 找不到的內容。

傳回值

FltGetContextsEx 會在成功完成時傳回STATUS_SUCCESS。 否則,它會傳回狀態代碼,例如下列其中一項。

程式碼 意義
STATUS_INVALID_PARAMETER 輸入的內容值無效。

備註

如需內容的詳細資訊,請參閱 關於迷你篩選內容

迷你篩選驅動程式會呼叫 FltGetContextsEx ,以擷取 FLT_RELATED_OBJECTS結構中 對象內容的指標。 在STATUS_SUCCESS上,迷你篩選程序必須先檢查內容是否不是零,再使用它。

下列迷你篩選驅動程式回呼例程類型會以 FltObjects 輸入參數的形式接收FLT_RELATED_OBJECTS結構的指標:

FltGetContextsEx 會遞增 Contexts 參數指向之FLT_RELATED_CONTEXTS_EX結構中所傳回之每個內容的參考計數。 因此,對於每個成功呼叫 FltGetContextsEx,呼叫端必須:

  • 針對 Contexts 參數指向的整個結構呼叫 FltReleaseContextsEx
  • 針對結構中傳回的每個內容呼叫 FltReleaseContext ,並將結構中傳回的每個內容欄位設定為零。

規格需求

需求
最低支援的用戶端 Windows 8
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 FltMgr.lib
Dll Fltmgr.sys
IRQL <= APC_LEVEL

另請參閱

FLT_RELATED_CONTEXTS_EX

FLT_RELATED_OBJECTS

FltRegisterFilter

FltReleaseContext

FltReleaseContextsEx

PFLT_INSTANCE_QUERY_TEARDOWN_CALLBACK

PFLT_INSTANCE_SETUP_CALLBACK

PFLT_INSTANCE_TEARDOWN_CALLBACK

PFLT_POST_OPERATION_CALLBACK

PFLT_PRE_OPERATION_CALLBACK