2.2.2 CPREP_DISKID

The CPREP_DISKID structure identifies an operating system disk and typically corresponds to a LUN. This structure holds either the operating system disk number (not the BIOS disk number) or the disk signature .

 typedef struct _CPREP_DISKID {
   CPREP_DISKID_ENUM DiskIdType;
   [switch_is(DiskIdType)] union {
     [case(CprepIdSignature)] 
       unsigned long DiskSignature;
     [case(CprepIdGuid)] 
       GUID DiskGuid;
     [case(CprepIdNumber)] 
       unsigned long DeviceNumber;
     [case(CprepIdUnknown)] 
       unsigned long Junk;
   };
 } CPREP_DISKID,
  *PCPREP_DISKID;

DiskIdType: This MUST be one of the valid CPREP_DISKID_ENUM values.

DiskSignature: This field is valid only if DiskIdType is CprepIdSignature. It MUST contain the 4-byte signature of the disk. How the disk signature is assigned is implementation-specific.

DiskGuid: This field is valid only if DiskIdType is CprepIdGuid. It MUST contain the GUID that identifies the disk. How the disk GUID is assigned is implementation-specific.

DeviceNumber: This field is valid only if DiskIdType is CprepIdNumber. It MUST contain the operating system disk number, not the BIOS disk number. The device number ranges from zero to the number of disks accessible by the server minus one. How the device number is assigned is implementation-specific.

Junk: This field is valid only if DiskIdType is CprepIdUnknown. The value of this field is not used.