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 结构的指针,该结构接收最终完成状态和有关查询操作的信息。 对于返回数据的成功调用,写入 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 结构,其中包含卷的特定于文件系统的对象 ID 信息。 请注意,这与操作系统分配的唯一卷名称不同。 |
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”。
对于内核模式驱动程序的调用,NtXxx 和 ZwXxx 版本的 Windows 本机系统服务例程的行为方式可能以不同的方式处理和解释输入参数。 有关 NtXxx 与 ZwXxx 例程之间的关系的详细信息,请参阅 使用 Nt 和 Zw 版本的本机系统服务例程。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP |
目标平台 | 普遍 |
标头 | ntifs.h (include Ntifs.h, Ntddk.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL(请参阅“备注”部分) |
DDI 符合性规则 | HwStorPortProhibitedDDI、PowerIrpDDis |
另请参阅
FILE_FS_DRIVER_PATH_INFORMATION