共用方式為


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 為零,且 volumeListNULLNumberVolumesReturned 接收找到的磁碟區數目。

[in] VolumeListSize

VolumeList 可以保存之緩衝區的不透明篩選指標數目。 這個參數是選擇性的,而且可以是零。 如果輸入 VolumeListSize 為零,且 volumeListNULLNumberVolumesReturned 接收找到的磁碟區數目。

[out] NumberVolumesReturned

呼叫端配置變數的指標,該變數會接收 VolumeList 指向之陣列中傳回的不透明磁碟區指標數目。 如果 VolumeListSize 太小,而且 VolumeList 在輸入上不是NULLFltEnumerateVolumes 會傳回STATUS_BUFFER_TOO_SMALL,並將 NumberVolumesReturned 指向找到的磁碟區數目。 這是必要參數,而且無法 NULL

傳回值

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

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

言論

因為篩選管理員磁碟區清單的內容可以隨時變更,所以不保證會傳回相同結果的兩個呼叫 FltEnumerateVolumes

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

若要將 VolumeList 參數傳回的一或多個不透明磁碟區指標轉換成磁碟區資訊,請呼叫 FltGetVolumeInformation

若要列出篩選管理員已知之所有磁碟區的磁碟區資訊,請呼叫 FltEnumerateVolumeInformation

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

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

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

要求

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

另請參閱

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltGetVolumeInformation

FltObjectDereference