FltEnumerateFilters 函式 (fltkernel.h)

FltEnumerateFilters 例程會列舉系統中所有已註冊的迷你篩選驅動程式。

語法

NTSTATUS FLTAPI FltEnumerateFilters(
  [out] PFLT_FILTER *FilterList,
  [in]  ULONG       FilterListSize,
  [out] PULONG      NumberFiltersReturned
);

參數

[out] FilterList

呼叫端配置的緩衝區指標,該緩衝區會接收不透明篩選指標的陣列。 這個參數是選擇性的,如果 FilterListSize 參數的值是零,則可以是 NULL。 如果 Input 上的 FilterListSize 為零,且 FilterListNULL,NumberFiltersReturned 參數會收到找到的迷你篩選驅動程式數目。

[in] FilterListSize

FilterList 參數所指向之緩衝區的不透明篩選指標數目。 這個參數是選擇性的,而且可以是零。 如果 Input 上的 FilterListSize 為零,且 FilterListNULL,NumberFiltersReturned 參數會收到找到的迷你篩選驅動程式數目。

[out] NumberFiltersReturned

呼叫端配置的變數指標,接收 FilterList 參數指向之陣列中傳回的不透明篩選指標數目。 如果 FilterListSize 參數值太小,且 FilterList 在輸入時為非 NULL,FltEnumerateFilters 會傳回STATUS_BUFFER_TOO_SMALL,並將 NumberFiltersReturned 設定為指向找到的迷你篩選驅動程式數目。 這個參數是必要的,而且不能是 NULL

傳回值

FltEnumerateFilters 會 傳回STATUS_SUCCESS或適當的 NTSTATUS 值,如下所示:

傳回碼 Description
STATUS_BUFFER_TOO_SMALL
FilterList 參數指向的緩衝區不夠大,無法儲存要求的資訊。 這是錯誤碼。

備註

由於篩選條件可以隨時註冊,因此不保證會傳回相同的結果對 FltEnumerateFilters 的兩次呼叫。

FltEnumerateFilters 會在 FilterList 參數指向的陣列中傳回的每個不透明篩選指標新增取消參考。 當不再需要這些指標時,呼叫端必須在每一個指標上呼叫 FltObjectDereference 來釋放它們。 因此,每個成功呼叫 FltEnumerateFilters 都必須與每個傳回篩選指標的 FltObjectDereference 後續呼叫相符。

若要列出所有已註冊迷你篩選驅動程式的篩選資訊,請呼叫 FltEnumerateFilterInformation

若要列舉所有磁碟區上所有迷你篩選驅動程序的實例,請呼叫 FltEnumerateInstances

若要列舉篩選管理員已知的所有磁碟區,請呼叫 FltEnumerateVolumes

規格需求

需求
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 FltMgr.lib
IRQL <= APC_LEVEL

另請參閱

FltEnumerateFilterInformation

FltEnumerateInstances

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference