3.1.4.3.2.28 CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DISKID

The CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DISKID resource type control code returns the identification information of the disk of the designated storage class resource type with the specified file path on the node where the ApiResourceTypeControl method was issued.

Protocol version 2.0 servers fail this method using ERROR_INVALID_FUNCTION (0x00000001).

The client MUST provide the file path on the target disk, as a null-terminated Unicode string, in the buffer that is designated by lpInBuffer.

After successful completion of this method, the server MUST write the following data as a CLUSDSK_DISKID structure, as specified in section 2.2.3.33 to the buffer that is designated by lpOutBuffer:

  • A 32-bit integer indicating ID type. Valid values for this field are 0x00000001 for MBR disks, 0x00000002 for GPT disks, and 0x00001388 for disks whose partition type is unknown.

  • A 32-bit integer if the preceding ID type is an MBR disk signature or device number or a GUID (128-bit) if the preceding ID type is GPT disk ID.

The server MUST fail this method by using error code 0x00000002 (ERROR_FILE_NOT_FOUND) or 0x00000003 (ERROR_PATH_NOT_FOUND) if the file name or path name, respectively, sent in the input buffer is not associated with a disk of the designated storage class resource type. The client MUST treat the two error codes equivalently.

The server MUST fail this method by using error code 0x0000139F (ERROR_INVALID_STATE) if the ID type is 0x00001388 (partition type is unknown).

The server SHOULD accept a CLUSCTL_RESOURCE_TYPE_STORAGE_GET_DISKID resource control code request if its protocol server state is read-only, and the server MUST accept the request for processing if it is in the read/write state, as specified in section 3.1.1.