共用方式為


FltEnumerateInstances 函式 (fltkernel.h)

FltEnumerateInstances 例程會列舉指定迷你篩選驅動程式或磁碟區的小型篩選驅動程序實例。

語法

NTSTATUS FLTAPI FltEnumerateInstances(
  [in, optional] PFLT_VOLUME   Volume,
  [in, optional] PFLT_FILTER   Filter,
  [out]          PFLT_INSTANCE *InstanceList,
  [in]           ULONG         InstanceListSize,
  [out]          PULONG        NumberInstancesReturned
);

參數

[in, optional] Volume

呼叫端想要列舉迷你篩選驅動程序實例之磁碟區的不透明指標。 如果 NULL,則會列舉所有磁碟區的實例。 如果 FilterNULL,則必須是非NULL

[in, optional] Filter

要列舉其實例之迷你篩選驅動程式的不透明篩選指標。 如果 NULL,則會列舉所有迷你篩選驅動程式的實例。 如果 磁碟區NULL,則必須是非NULL

[out] InstanceList

接收不透明實例指標陣列之呼叫端配置的緩衝區指標。

[in] InstanceListSize

InstanceList 可保存之緩衝區的不透明實例指標數目。

[out] NumberInstancesReturned

呼叫端配置的變數指標,該變數會接收 InstanceList 中傳回的不透明實例指標數目,指向該陣列。 如果 InstanceListSize 太小,FltEnumerateInstances 會傳回STATUS_BUFFER_TOO_SMALL,並將 NumberInstancesReturned 指向找到的相符實例數目。

傳回值

FltEnumerateInstances 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:

傳回碼 描述
STATUS_BUFFER_TOO_SMALL
InstanceList 參數指向的緩衝區不夠大,無法儲存所要求的資訊。 這是錯誤碼。
STATUS_INVALID_PARAMETER
磁碟區篩選 不能同時 NULL。 這是錯誤碼。

言論

由於實例清單中的小型篩選驅動程序實例可以隨時變更,因此,FltEnumerateInstances 的兩次呼叫會使用相同的 磁碟區Filter 值不保證會傳回相同的結果。

FltEnumerateInstances 會將 rundown 參考新增至陣列中傳回的每個不透明實例指標,InstanceList 參數所指向。 當不再需要這些指標時,呼叫端必須在每個指標上呼叫 FltObjectDereference 來釋放它們。 因此,FltEnumerateInstances 的每個成功呼叫,都必須比對每個傳回實例指標的後續呼叫 FltObjectDereference

若要列舉所有已註冊的迷你篩選驅動程式,請呼叫 FltEnumerateFilters

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

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

若要取得指定迷你篩選驅動程式的篩選資訊,請呼叫 FltGetFilterInformation

若要列舉指定迷你篩選驅動程式的所有實例,請呼叫 FltEnumerateInstanceInformationByFilter

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

要求

要求 價值
目標平臺 普遍
標頭 fltkernel.h (包括 Fltkernel.h)
連結庫 FltMgr.lib
IRQL <= APC_LEVEL

另請參閱

FltEnumerateFilterInformation

FltEnumerateFilters

FltEnumerateInstanceInformationByFilter

FltEnumerateInstanceInformationByVolume

FltEnumerateVolumes

FltGetFilterInformation

FltObjectDereference