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 结构的指针,该结构接收最终完成状态和有关查询操作的信息。 对于返回数据的成功调用,将在结构的 Information 成员中返回写入 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 路径中的信息。 调用方在调用 NtQueryVolumeInformationFile 之前,必须将驱动程序的名称存储在 FILE_FS_DRIVER_PATH_INFORMATION 结构中。
FileFsFullSizeInformation 返回一个 FILE_FS_FULL_SIZE_INFORMATION 结构,其中包含有关卷上可用空间总量的信息。
FileFsObjectIdInformation 返回包含卷的文件系统特定对象 ID 信息的 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 结构的任何成员中返回零。

有关其他文件信息查询例程的信息,请参阅 文件对象

微筛选器应使用 FltQueryVolumeInformationFile 而不是 NtQueryVolumeInformationFile

NtQueryVolumeInformationFile 的调用方必须在 IRQL = PASSIVE_LEVEL 运行,并且启用了特殊的内核 APC

注意

如果在用户模式下调用 NtQueryVolumeInformationFile 函数,则应使用名称“NtQueryVolumeInformationFile”而不是“ZwQueryVolumeInformationFile”。

对于来自内核模式驱动程序的调用,Windows 本机系统服务例程的 NtXxxZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxxZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本

要求

要求
最低受支持的客户端 Windows XP
目标平台 通用
标头 ntifs.h (包括 Ntifs.h、Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (请参阅备注部分)
DDI 符合性规则 HwStorPortProhibitedDDI,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