共用方式為


FltGetVolumeInformation 函式 (fltkernel.h)

FltGetVolumeInformation 例程會提供指定磁碟區的相關信息。

語法

NTSTATUS FLTAPI FltGetVolumeInformation(
  [in]  PFLT_VOLUME                     Volume,
  [in]  FILTER_VOLUME_INFORMATION_CLASS InformationClass,
  [out] PVOID                           Buffer,
  [in]  ULONG                           BufferSize,
  [out] PULONG                          BytesReturned
);

參數

[in] Volume

磁碟區的不透明指標。 這是必要參數,而且無法 NULL

[in] InformationClass

所要求的信息類型。 這個參數是必要的,而且必須是下列其中一個值。

價值 意義
FilterVolumeBasicInformation Buffer 參數會接收磁碟區的 FILTER_VOLUME_BASIC_INFORMATION 結構。
FilterVolumeStandardInformation Buffer 參數會接收磁碟區的 FILTER_VOLUME_STANDARD_INFORMATION 結構。 從 Windows Vista 開始,即可使用此結構。

[out] Buffer

接收所要求資訊的呼叫端配置緩衝區指標。 緩衝區中傳回的信息類型是由 InformationClass 參數所定義。 這是必要參數,而且無法 NULL

[in] BufferSize

Buffer 參數指向的緩衝區大小,以位元組為單位。 呼叫端應該根據指定的 InformationClass 值來設定此參數。 這是必要參數。

[out] BytesReturned

呼叫端配置的變數指標,該變數會接收緩衝區中傳回的位元組數目,Buffer 指向該緩衝區。 如果 BufferSize 的輸入值太小,FltGetVolumeInformation 會傳回STATUS_BUFFER_TOO_SMALL,並將此變數設定為儲存所要求資訊所需的位元組數目。 這是必要參數,而且無法 NULL

傳回值

FltGetVolumeInformation 會傳回STATUS_SUCCESS或適當的 NTSTATUS 狀態代碼,例如下列其中一項:

傳回碼 描述
STATUS_INVALID_PARAMETER
InformationClass 參數指定了無效的值。 例如,如果在 Windows Vista 之前的作系統上指定 FilterVolumeStandardInformation,則例程會傳回STATUS_INVALID_PARAMETER。 這是錯誤碼。
STATUS_BUFFER_TOO_SMALL
Buffer 參數指向的緩衝區不夠大,無法儲存要求的資訊。 這是錯誤碼。

言論

假設磁碟區指標不透明,例如 FltEnumerateVolumes 例程所傳回的磁碟區指標,FltGetVolumeInformation 例程會提供不透明磁碟區指標所指向的磁碟區相關信息,該磁碟區指標會透過 Volume 參數傳遞。 請注意,呼叫端最終必須藉由呼叫 FltObjectDereference 例程來釋放不透明的磁碟區指標。

FltGetVolumeInformation 例程會傳回單一磁碟區的資訊。 不過,假設有不透明的磁碟區指標清單,例程可以反覆用來建立對應的磁碟區資訊結構清單。 在這類清單中,有兩個或多個結構可以包含相同的磁碟區名稱。 如需詳細資訊,請參閱 瞭解具有重複磁碟區名稱的磁碟區列舉

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

下列清單包含可能正在使用的相關信息:

要求

要求 價值
最低支援的用戶端 從 Windows Vista 開始,即可使用此例程。
目標平臺 普遍
標頭 fltkernel.h (包括 FltKernel.h)
連結庫 FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

另請參閱

FILTER_VOLUME_BASIC_INFORMATION

FILTER_VOLUME_STANDARD_INFORMATION

FLT_RELATED_OBJECTS

FltEnumerateFilters

FltEnumerateInstanceInformationByVolume

FltEnumerateInstances

FltEnumerateVolumeInformation

FltEnumerateVolumes

FltGetVolumeFromDeviceObject

FltGetVolumeFromFileObject

FltGetVolumeFromInstance

FltGetVolumeFromName