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 |
---|---|
|
VolumeProperties 參數指向的緩衝區夠大,足以保存FLT_VOLUME_PROPERTIES結構的固定部分,但不能保存 FileSystemDriverName、FileSystemDeviceName 或 RealDeviceName 成員。 在此情況下, VolumeProperties 參數所指向的緩衝區中只會傳回磁碟區資訊的固定部分。 LengthReturned 參數會接收傳回之數據的實際長度,以位元組為單位。 這是警告碼。 |
|
VolumeProperties 參數指向的緩衝區不夠大,無法保存磁碟區屬性資訊。 LengthReturned 參數會接收所需的緩衝區大小。 在此情況下,不會傳回磁碟區資訊。 這是錯誤碼。 |
備註
FltGetVolumeProperties 只會傳回可在掛接過程中安全地查詢的資訊,而不會有系統死結的風險。 因此,迷你篩選驅動程式通常會從掛接后回呼函式或 InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) 例程呼叫此例程,以判斷是否要附加至指定的磁碟區。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | fltkernel.h (包含 Fltkernel.h) |
程式庫 | FltMgr.lib |
Dll | Fltmgr.sys |
IRQL | <= APC_LEVEL |