Platform SDK: Hardware

FILE_OBJECTID_BUFFER

The FILE_OBJECTID_BUFFER structure describes an object identifier in the Windows 2000 NTFS file system.

typedef struct _FILE_OBJECTID_BUFFER {
  BYTE ObjectId[16];
  union {
      struct {
          BYTE  BirthVolumeId[16];
          BYTE  BirthObjectId[16];
          BYTE  DomainId[16];
      } ;
      BYTE  ExtendedInfo[48];
  };
} FILE_OBJECTID_BUFFER, *PFILE_OBJECTID_BUFFER;

Members

ObjectId
Data that uniquely identifies the object within the volume on which it resides. This is the only data in the object identifier that is used in indexing.
ExtendedInfo
User-provided data. You can use it to contain the BirthVolumeID, BirthObjectID, and DomainID members as described later in this topic, or you can define a different data structure.
BirthVolumeId
The object 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.
BirthObjectId
The 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.
DomainId
Reserved; must be zero.

Remarks

Object identifiers are Windows 2000 internal objects used by the operating system to track other objects such as 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. Also, there is no guarantee that code to manipulate object identifiers will be forward compatible with future versions of Windows. Therefore, use standard Win32 functions to manipulate object identifiers and other operating system objects.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Unsupported.
  Header: Declared in Winioctl.h.

See Also

Device Input and Output Overview, Device Input and Output Structures, FSCTL_CREATE_OR_GET_OBJECT_ID, FSCTL_DELETE_OBJECT_ID, FSCTL_GET_OBJECT_ID, FSCTL_SET_OBJECT_ID, FSCTL_SET_OBJECT_ID_EXTENDED