共用方式為


FltGetVolumeProperties 函式 (fltkernel.h)

FltGetVolumeProperties 例程會傳回指定磁碟區的磁碟區屬性資訊。

語法

NTSTATUS FLTAPI FltGetVolumeProperties(
  [in]  PFLT_VOLUME            Volume,
  [out] PFLT_VOLUME_PROPERTIES VolumeProperties,
        ULONG                  VolumePropertiesLength,
  [out] PULONG                 LengthReturned
);

參數

[in] Volume

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

[out] VolumeProperties

接收要求之磁碟區屬性資訊的呼叫端配置緩衝區指標。 如果輸入的 Length 為零,則會忽略此參數。 否則,這個參數是必要的,而且不能是 NULL

VolumePropertiesLength

VolumeProperties 參數所指向之緩衝區的大小,以位元組為單位。 此參數是選擇性的,而且可以是零。 如果是零, LengthReturned 會接收保留磁碟區屬性所需的緩衝區大小,以位元組為單位。 如果此參數為非零值,則它至少必須是 sizeof (FLT_VOLUME_PROPERTIES) 的值。

[out] LengthReturned

呼叫端配置的變數指標,該變數會接收 VolumeProperties 中傳回之資訊的大小,以位元組為單位。 如果 FltGetVolumeProperties 傳回STATUS_BUFFER_TOO_SMALL,或者如果輸入的 Length 為零,此參數會改為接收保留磁碟區屬性所需的緩衝區大小,以位元組為單位。 這個參數是必要的,而且不能是 NULL

傳回值

FltGetVolumeProperties 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:

傳回碼 Description
STATUS_BUFFER_OVERFLOW
VolumeProperties 參數指向的緩衝區夠大,足以保存FLT_VOLUME_PROPERTIES結構的固定部分,但不能保存 FileSystemDriverNameFileSystemDeviceNameRealDeviceName 成員。 在此情況下, VolumeProperties 參數所指向的緩衝區中只會傳回磁碟區資訊的固定部分。 LengthReturned 參數會接收傳回之數據的實際長度,以位元組為單位。 這是警告碼。
STATUS_BUFFER_TOO_SMALL
VolumeProperties 參數指向的緩衝區不夠大,無法保存磁碟區屬性資訊。 LengthReturned 參數會接收所需的緩衝區大小。 在此情況下,不會傳回磁碟區資訊。 這是錯誤碼。

備註

FltGetVolumeProperties 只會傳回可在掛接過程中安全地查詢的資訊,而不會有系統死結的風險。 因此,迷你篩選驅動程式通常會從掛接后回呼函式或 InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) 例程呼叫此例程,以判斷是否要附加至指定的磁碟區。

規格需求

需求
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 FltMgr.lib
Dll Fltmgr.sys
IRQL <= APC_LEVEL

另請參閱

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK