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 在輸入上為零,而 VolumeList 為 NULL,NumberVolumesReturned 就會接收找到的磁碟區數目。
[in] VolumeListSize
VolumeList 所指向之緩衝區可保存的不透明篩選指標數目。 此參數是選擇性的,而且可以是零。 如果 VolumeListSize 在輸入上為零,而 VolumeList 為 NULL,NumberVolumesReturned 就會接收找到的磁碟區數目。
[out] NumberVolumesReturned
呼叫端配置的變數指標,該變數會接收 VolumeList 所指向之數位中傳回的不透明磁碟區指標數目。 如果 VolumeListSize 太小,而且 VolumeList 在輸入時為非 NULL,FltEnumerateVolumes 會傳回STATUS_BUFFER_TOO_SMALL,並將 NumberVolumesReturned 設定為指向找到的磁碟區數目。 這個參數是必要的,而且不能是 NULL。
傳回值
FltEnumerateVolumes 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,如下所示:
傳回碼 | Description |
---|---|
|
VolumeList 參數指向的緩衝區不夠大,無法儲存要求的資訊。 這是錯誤碼。 |
備註
由於篩選管理員的磁碟區清單內容可以隨時變更,因此不保證會傳回相同的結果, FltEnumerateVolumes 的兩次呼叫。
FltEnumerateVolumes 會在 VolumeList 指向的陣列中傳回的每個不透明磁碟區指標中,新增一個下拉式參考。 不再需要這些指標時,呼叫端必須在每一個指標上呼叫 FltObjectDereference 來釋放這些指標。 因此,每個成功呼叫 FltEnumerateVolumes 都必須符合每個傳回之磁碟區指標的 後續 FltObjectDereference 呼叫。
若要將 VolumeList 參數傳回的一或多個不透明磁碟區指標轉換成磁碟區資訊,請呼叫 FltGetVolumeInformation。
若要列出篩選管理員已知所有磁碟區的磁碟區資訊,請呼叫 FltEnumerateVolumeInformation。
若要列舉所有已註冊的迷你篩選驅動程式,請呼叫 FltEnumerateFilters。
若要列舉所有迷你篩選驅動程序實例,請呼叫 FltEnumerateInstances。
若要列舉指定磁碟區上的所有迷你篩選驅動程序實例,請呼叫 FltEnumerateInstanceInformationByVolume。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | fltkernel.h (包括 FltKernel.h) |
程式庫 | FltMgr.lib |
IRQL | <= APC_LEVEL |