ZwSetVolumeInformationFile function (ntifs.h)

The ZwSetVolumeInformationFile routine modifies information about the volume associated with a given file, directory, storage device, or volume.

Syntax

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

Parameters

[in] FileHandle

Handle to a file object for an open file, directory, storage device, or volume whose volume information is to be modified.

[out] IoStatusBlock

Pointer to an IO_STATUS_BLOCK structure that receives the final completion status and information about the operation.

[in] FsInformation

Pointer to a caller-allocated buffer containing the volume information to be modified. The structure of the information in this buffer depends on the value of FsInformationClass, as shown in the following table.

[in] Length

Size in bytes of the buffer pointed to by FsInformation. The caller should set this parameter according to the given FsInformationClass.

[in] FsInformationClass

Type of volume information to be set. One of the following:

Value Meaning
FileFsControlInformation Set FILE_FS_CONTROL_INFORMATION for the volume.
FileFsLabelInformation Set FILE_FS_LABEL_INFORMATION for the volume.
FileFsObjectIdInformation Set FILE_FS_OBJECTID_INFORMATION for the volume.

Return value

ZwSetVolumeInformationFile returns STATUS_SUCCESS or an appropriate NTSTATUS value such as one of the following:

Return code Description
STATUS_INFO_LENGTH_MISMATCH
An invalid value was specified for Length. This is an error code.
STATUS_INSUFFICIENT_RESOURCES

ZwSetVolumeInformationFile encountered a pool allocation failure. This is an error code.

STATUS_INVALID_INFO_CLASS
An invalid value was specified for FsInformationClass. This is an error code.

Remarks

To query volume information, call ZwQueryVolumeInformationFile.

To change information about a file, call ZwSetVolumeInformationFile.

Minifilters should use FltSetInformationFile instead of ZwSetVolumeInformationFile.

Note  If the call to the ZwSetVolumeInformationFilefunction occurs in user mode, you should use the name "NtSetInformationFile" instead of "ZwSetVolumeInformationFile".
 
For calls from kernel-mode drivers, the NtXxx and ZwXxx versions of a Windows Native System Services routine can behave differently in the way that they handle and interpret input parameters. For more information about the relationship between the NtXxx and ZwXxx versions of a routine, see Using Nt and Zw Versions of the Native System Services Routines.

Requirements

Requirement Value
Minimum supported client Windows Server 2003
Target Platform Universal
Header ntifs.h (include Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI compliance rules HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

See also

FILE_FS_CONTROL_INFORMATION

FILE_FS_LABEL_INFORMATION

FILE_FS_OBJECTID_INFORMATION

FltSetInformationFile

IRP_MJ_SET_VOLUME_INFORMATION

Using Nt and Zw Versions of the Native System Services Routines

ZwQueryVolumeInformationFile

ZwSetInformationFile