// winioctl.h
typedef struct _FILE_OBJECTID_BUFFER {
BYTE ObjectId[16];
union {
struct {
BYTE BirthVolumeId[16];
BYTE BirthObjectId[16];
BYTE DomainId[16];
} DUMMYSTRUCTNAME;
BYTE ExtendedInfo[48];
} DUMMYUNIONNAME;
} FILE_OBJECTID_BUFFER, *PFILE_OBJECTID_BUFFER;
View the official Win32 API referenceNo description available.
Contains an object identifier and user-defined metadata associated with the object identifier.
ObjectIdThe identifier that uniquely identifies the file or directory within the volume on which it resides.
DUMMYUNIONNAMEDUMMYUNIONNAME.DUMMYSTRUCTNAMEDUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthVolumeIdThe identifier of the volume on which the object resided when the object identifier was created, or zero if the volume had no object identifier at that time. After copy operations, move operations, or other file operations, this may not be the same as the object identifier of the volume on which the object presently resides.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.BirthObjectIdThe object identifier of the object at the time it was created. After copy operations, move operations, or other file operations, this may not be the same as the ObjectId member at present.
DUMMYUNIONNAME.DUMMYSTRUCTNAME.DomainIdReserved; must be zero.
DUMMYUNIONNAME.ExtendedInfoUser-defined extended data to be set with FSCTL_SET_OBJECT_ID_EXTENDED. Use this data as an alternative to the BirthVolumeId, BirthObjectId, and DomainId members.
Object identifiers are used to track files and directories. They are invisible to most applications and should never be modified by applications. Modifying an object identifier can result in the loss of data from portions of a file, up to and including entire volumes of data.