FltEnumerateVolumes 函式 (fltkernel.h)
FltEnumerateVolumes 例程會列舉系統中的所有磁碟區。
語法
NTSTATUS FLTAPI FltEnumerateVolumes(
[in] PFLT_FILTER Filter,
[out] PFLT_VOLUME *VolumeList,
[in] ULONG VolumeListSize,
[out] PULONG NumberVolumesReturned
);
參數
[in] Filter
呼叫端的不透明篩選指標。 這是必要參數,而且無法 NULL。
[out] VolumeList
接收不透明磁碟區指標數位列之呼叫端配置的緩衝區指標。 此參數是選擇性的,如果 VolumeListSize 為零,則可以 NULL。 如果輸入 VolumeListSize 為零,且 volumeListNULL,NumberVolumesReturned 接收找到的磁碟區數目。
[in] VolumeListSize
VolumeList 可以保存之緩衝區的不透明篩選指標數目。 這個參數是選擇性的,而且可以是零。 如果輸入 VolumeListSize 為零,且 volumeListNULL,NumberVolumesReturned 接收找到的磁碟區數目。
[out] NumberVolumesReturned
呼叫端配置變數的指標,該變數會接收 VolumeList 指向之陣列中傳回的不透明磁碟區指標數目。 如果 VolumeListSize 太小,而且 VolumeList 在輸入上不是NULL,FltEnumerateVolumes 會傳回STATUS_BUFFER_TOO_SMALL,並將 NumberVolumesReturned 指向找到的磁碟區數目。 這是必要參數,而且無法 NULL。
傳回值
FltEnumerateVolumes 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,如下所示:
傳回碼 | 描述 |
---|---|
|
VolumeList 參數指向的緩衝區不夠大,無法儲存要求的資訊。 這是錯誤碼。 |
言論
因為篩選管理員磁碟區清單的內容可以隨時變更,所以不保證會傳回相同結果的兩個呼叫 FltEnumerateVolumes。
FltEnumerateVolumes 會將 rundown 參考新增至 VolumeList 指向之陣列中傳回的每個不透明磁碟區指標。 當不再需要這些指標時,呼叫端必須在每個指標上呼叫 FltObjectDereference 來釋放它們。 因此,每個傳回之磁碟區指標的後續呼叫都必須比對 FltEnumerateVolumes 的每個成功呼叫 FltObjectDereference。
若要將 VolumeList 參數傳回的一或多個不透明磁碟區指標轉換成磁碟區資訊,請呼叫 FltGetVolumeInformation。
若要列出篩選管理員已知之所有磁碟區的磁碟區資訊,請呼叫 FltEnumerateVolumeInformation。
若要列舉所有已註冊的迷你篩選驅動程式,請呼叫 FltEnumerateFilters。
若要列舉所有迷你篩選驅動程式實例,請呼叫 FltEnumerateInstances。
若要列舉指定磁碟區上的所有迷你篩選驅動程序實例,請呼叫 FltEnumerateInstanceInformationByVolume。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | fltkernel.h (包括 FltKernel.h) |
連結庫 | FltMgr.lib |
IRQL | <= APC_LEVEL |