FILE_FS_OBJECTID_INFORMATION - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTIOAPI_H

typedef struct _FILE_FS_OBJECTID_INFORMATION
{
    UCHAR ObjectId[16];
    union
    {
        struct
        {
            UCHAR BirthVolumeId[16];
            UCHAR BirthObjectId[16];
            UCHAR DomainId[16];
        };
        UCHAR ExtendedInfo[48];
    };
} FILE_FS_OBJECTID_INFORMATION, *PFILE_FS_OBJECTID_INFORMATION;

#endif

View code on GitHub
// ntddk.h

typedef struct _FILE_FS_OBJECTID_INFORMATION {
  UCHAR ObjectId[16];
  UCHAR ExtendedInfo[48];
} FILE_FS_OBJECTID_INFORMATION, *PFILE_FS_OBJECTID_INFORMATION;
View the official Windows Driver Kit DDI reference

NtDoc

This structure is documented in Windows Driver Kit.

Windows Driver Kit DDI reference (ns-ntddk-_file_fs_objectid_information)

_FILE_FS_OBJECTID_INFORMATION structure

Description

The FILE_FS_OBJECTID_INFORMATION structure is used to query or set the object ID for a file system volume.

Members

ObjectId

A 16-byte GUID that identifies the file system volume on the disk.

ExtendedInfo

A 48-byte value containing optional, additional caller-defined information on the file system volume. The meaning of this extended information is opaque to the file system.

Remarks

This information can be queried in either of the following ways:

No specific access rights are required to query this information. Thus this information is available as long as the volume is accessed through an open handle to the volume itself, or to a file or directory on the volume.

This information can be set in either of the following ways:

FILE_WRITE_DATA access to the volume is required to set this information.

Support for volume object IDs is file-system-specific. In NTFS, volume object IDs are used extensively by the distributed link tracking service.

It is important to note that the volume object ID is not the same as the volume GUID. The volume object ID is assigned to the file system volume by the file system. The volume GUID, or unique volume name, is file system-independent; it is assigned to the underlying storage volume by the Volume Mount Manager.

To get the volume GUID for a volume, use the Win32 GetVolumeNameForVolumeMountPointW function or the FltGetVolumeGuidName routine.

The size of the buffer passed in the FileInformation parameter to FltQueryVolumeInformation, FltSetVolumeInformation, ZwQueryVolumeInformationFile, or ZwSetVolumeInformationFile must be at least sizeof (FILE_FS_OBJECTID_INFORMATION).

This structure must be aligned on a LONGLONG (8-byte) boundary.

See also

FltGetVolumeGuidName

FltQueryVolumeInformation

FltSetVolumeInformation

IRP_MJ_QUERY_VOLUME_INFORMATION

IRP_MJ_SET_VOLUME_INFORMATION

ZwQueryVolumeInformationFile

ZwSetVolumeInformationFile