NtQueryVolumeInformationFile 函式 (ntifs.h)

NtQueryVolumeInformationFile 例程會擷取與指定檔案、目錄、儲存裝置或磁碟區相關聯的磁碟區相關信息。

語法

__kernel_entry NTSYSCALLAPI NTSTATUS NtQueryVolumeInformationFile(
  [in]  HANDLE               FileHandle,
  [out] PIO_STATUS_BLOCK     IoStatusBlock,
  [out] PVOID                FsInformation,
  [in]  ULONG                Length,
  [in]  FS_INFORMATION_CLASS FsInformationClass
);

參數

[in] FileHandle

NtCreateFileNtOpenFile 針對要求磁碟區資訊的開啟檔案、目錄、儲存裝置或磁碟區所傳回之檔案物件的句柄。

[out] IoStatusBlock

IO_STATUS_BLOCK 結構的指標 ,可接收最終完成狀態和查詢作業的相關信息。 對於傳回數據的成功呼叫,會將寫入 FsInformation 緩衝區的位元組數目傳回至結構 的信息 成員中。

[out] FsInformation

呼叫端配置的緩衝區指標,可接收磁碟區所需的資訊。 緩衝區中傳回的信息結構是由 FsInformationClass 參數所定義。

[in] Length

以位元組為單位的緩衝區大小 ,由 FsInformation 指向。 呼叫端應該根據指定的 FsInformationClass 來設定此參數。

[in] FsInformationClass

要傳回磁碟區的相關信息類型。 將此成員設定為下列其中一個 FS_INFORMATION_CLASS 列舉值。

意義
FileFsAttributeInformation 傳回 FILE_FS_ATTRIBUTE_INFORMATION 結構,其中包含負責磁碟區之文件系統的屬性資訊。
FileFsControlInformation 傳回 包含 磁碟區檔系統控制資訊的FILE_FS_CONTROL_INFORMATION結構。
FileFsDeviceInformation 傳回 包含 磁碟區裝置資訊的FILE_FS_DEVICE_INFORMATION結構。
FileFsDriverPathInformation 傳回 FILE_FS_DRIVER_PATH_INFORMATION 結構,其中包含指定的驅動程式是否位於磁碟區的 I/O 路徑中。 呼叫端必須先將驅動程式的名稱儲存到 FILE_FS_DRIVER_PATH_INFORMATION 結構中,才能呼叫 NtQueryVolumeInformationFile
FileFsFullSizeInformation 傳回 FILE_FS_FULL_SIZE_INFORMATION 結構,其中包含磁碟區可用空間總數的相關信息。
FileFsObjectIdInformation 傳回 包含 磁碟區檔系統特定物件標識碼資訊的FILE_FS_OBJECTID_INFORMATION結構。 請注意,這與操作系統指派的唯一磁碟區名稱 (GUID 型) 不同。
FileFsSizeInformation 傳回 FILE_FS_SIZE_INFORMATION 結構,其中包含與呼叫線程相關聯之使用者可用磁碟區空間量的相關信息。
FileFsVolumeInformation 傳回 FILE_FS_VOLUME_INFORMATION 包含磁碟區的相關信息,例如磁碟區標籤、序號和建立時間。
FileFsSectorSizeInformation 傳回 FILE_FS_SECTOR_SIZE_INFORMATION 結構,其中包含磁碟區之實體和邏輯扇區大小的相關信息。

傳回值

NtQueryVolumeInformationFile 會傳回STATUS_SUCCESS或適當的錯誤狀態。

備註

NtQueryVolumeInformationFile 會擷取與指定檔案、目錄、儲存裝置或磁碟區相關聯的磁碟區相關信息。

如果 FileHandle 代表直接開啟的裝置,則只能將 FileFsDeviceInformation 指定為 FsInformationClass 的值。

NtQueryVolumeInformationFile 會在文件系統不支援的 FILE_XXX_INFORMATION 結構的任何成員中傳回零。

如需其他檔案資訊查詢例程的相關信息,請參閱 檔案物件

Minifilters 應該使用 FltQueryVolumeInformationFile ,而不是 NtQueryVolumeInformationFile

NtQueryVolumeInformationFile 的呼叫端必須在 IRQL = PASSIVE_LEVEL且啟用特殊核心 APC 時執行

注意

如果 對 NtQueryVolumeInformationFile 函式的呼叫發生在使用者模式中,您應該使用名稱 “NtQueryVolumeInformationFile”,而不是 “ZwQueryVolumeInformationFile”。

對於核心模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxxZwXxx 版本在處理和解譯輸入參數的方式可能會有不同的行為。 如需例程 NtXxxZwXxx 版本之間的關聯性詳細資訊,請參閱 使用 Nt 和 Zw 版本的原生系統服務例程

規格需求

需求
最低支援的用戶端 Windows XP
目標平台 Universal
標頭 ntifs.h (包含 Ntifs.h、Ntddk.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL (请参阅一节)
DDI 合規性規則 HwStorPortProhibitedDIS、 PowerIrpDDis

另請參閱

FILE_FS_ATTRIBUTE_INFORMATION

FILE_FS_CONTROL_INFORMATION

FILE_FS_DEVICE_INFORMATION

FILE_FS_DRIVER_PATH_INFORMATION

FILE_FS_FULL_SIZE_INFORMATION

FILE_FS_OBJECTID_INFORMATION

FILE_FS_SIZE_INFORMATION

FILE_FS_VOLUME_INFORMATION

FltQueryVolumeInformationFile

IRP_MJ_QUERY_VOLUME_INFORMATION

IRP_MJ_SET_VOLUME_INFORMATION

使用原生系統服務例程的 Nt 和 Zw 版本

NtCreateFile

NtOpenFile

NtQueryDirectoryFile

NtQueryInformationFile

NtSetInformationFile

ZwSetVolumeInformationFile