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 值,例如下列其中一項:
傳回碼 | 描述 |
---|---|
|
InstanceList 參數指向的緩衝區不夠大,無法儲存所要求的資訊。 這是錯誤碼。 |
|
磁碟區 和 篩選 不能同時 NULL。 這是錯誤碼。 |
言論
由於實例清單中的小型篩選驅動程序實例可以隨時變更,因此,FltEnumerateInstances 的兩次呼叫會使用相同的 磁碟區 和 Filter 值不保證會傳回相同的結果。
FltEnumerateInstances 會將 rundown 參考新增至陣列中傳回的每個不透明實例指標,InstanceList 參數所指向。 當不再需要這些指標時,呼叫端必須在每個指標上呼叫 FltObjectDereference 來釋放它們。 因此,FltEnumerateInstances 的每個成功呼叫,都必須比對每個傳回實例指標的後續呼叫 FltObjectDereference。
若要列舉所有已註冊的迷你篩選驅動程式,請呼叫 FltEnumerateFilters。
若要列舉篩選管理員已知的所有磁碟區,請呼叫 FltEnumerateVolumes。
若要列出所有已註冊迷你篩選驅動程式的篩選資訊,請呼叫 FltEnumerateFilterInformation。
若要取得指定迷你篩選驅動程式的篩選資訊,請呼叫 FltGetFilterInformation。
若要列舉指定迷你篩選驅動程式的所有實例,請呼叫 FltEnumerateInstanceInformationByFilter。
若要列舉指定磁碟區上的所有迷你篩選驅動程序實例,請呼叫 FltEnumerateInstanceInformationByVolume。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | fltkernel.h (包括 Fltkernel.h) |
連結庫 | FltMgr.lib |
IRQL | <= APC_LEVEL |
另請參閱
FltEnumerateInstanceInformationByFilter