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
NtCreateFile 或 NtOpenFile 为正在为其请求卷信息的打开文件、目录、存储设备或卷返回的文件对象的句柄。
[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 本机系统服务例程的 NtXxx 和 ZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxx 和 ZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP |
目标平台 | 通用 |
标头 | ntifs.h (包括 Ntifs.h、Ntddk.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (请参阅备注部分) |
DDI 符合性规则 | HwStorPortProhibitedDDI,PowerIrpDDis |
另请参阅
FILE_FS_DRIVER_PATH_INFORMATION