ZwSetVolumeInformationFile 函数 (ntifs.h)

ZwSetVolumeInformationFile 例程修改与给定文件、目录、存储设备或卷关联的卷的相关信息。

语法

NTSYSAPI NTSTATUS ZwSetVolumeInformationFile(
  [in]  HANDLE               FileHandle,
  [out] PIO_STATUS_BLOCK     IoStatusBlock,
  [in]  PVOID                FsInformation,
  [in]  ULONG                Length,
  [in]  FS_INFORMATION_CLASS FsInformationClass
);

参数

[in] FileHandle

要修改其卷信息的打开文件、目录、存储设备或卷的文件对象的句柄。

[out] IoStatusBlock

指向接收最终完成状态和操作相关信息的 IO_STATUS_BLOCK 结构的指针。

[in] FsInformation

指向调用方分配的缓冲区的指针,该缓冲区包含要修改的卷信息。 此缓冲区中信息的结构取决于 FsInformationClass 的值,如下表所示。

[in] Length

FsInformation 指向的缓冲区的大小(以字节为单位)。 调用方应根据给定的 FsInformationClass 设置此参数。

[in] FsInformationClass

要设置的卷信息的类型。 下列类型作之一:

含义
FileFsControlInformation 设置卷 FILE_FS_CONTROL_INFORMATION
FileFsLabelInformation 设置卷的 FILE_FS_LABEL_INFORMATION
FileFsObjectIdInformation 设置 卷FILE_FS_OBJECTID_INFORMATION

返回值

ZwSetVolumeInformationFile 返回STATUS_SUCCESS或相应的 NTSTATUS 值,例如以下值之一:

返回代码 说明
STATUS_INFO_LENGTH_MISMATCH
Length 指定了无效值。 这是错误代码。
STATUS_INSUFFICIENT_RESOURCES

ZwSetVolumeInformationFile 遇到池分配失败。 这是错误代码。

STATUS_INVALID_INFO_CLASS
FsInformationClass 指定了无效值。 这是错误代码。

注解

若要查询卷信息,请调用 ZwQueryVolumeInformationFile

若要更改有关文件的信息,请调用 ZwSetVolumeInformationFile

微筛选器应使用 FltSetInformationFile 而不是 ZwSetVolumeInformationFile

注意 如果在用户模式下调用 ZwSetVolumeInformationFile函数,则应使用名称“NtSetInformationFile”而不是“ZwSetVolumeInformationFile”。
 
对于来自内核模式驱动程序的调用,Windows 本机系统服务例程的 NtXxxZwXxx 版本在处理和解释输入参数的方式上的行为可能有所不同。 有关例程的 NtXxxZwXxx 版本之间的关系的详细信息,请参阅 使用本机系统服务例程的 Nt 和 Zw 版本

要求

要求
最低受支持的客户端 Windows Server 2003
目标平台 通用
标头 ntifs.h (包括 Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 符合性规则 HwStorPortProhibitedDDI (storport) PowerIrpDDis (wdm)

另请参阅

FILE_FS_CONTROL_INFORMATION

FILE_FS_LABEL_INFORMATION

FILE_FS_OBJECTID_INFORMATION

FltSetInformationFile

IRP_MJ_SET_VOLUME_INFORMATION

使用本机系统服务例程的 Nt 和 Zw 版本

ZwQueryVolumeInformationFile

ZwSetInformationFile