<div class="content"><p>The <b>CprepDiskGetUniqueIds</b> method returns device ID
data about the <b>ClusPrepDisk</b>.</p><dl>
<dd>
<div><pre> HRESULT CprepDiskGetUniqueIds(
   [in] CPREP_DISKID DiskId,
   [in] unsigned long cbData,
   [out, size_is(cbData), length_is(*pcbDataOut)] 
     byte* pbData,
   [out] unsigned long* pcbDataOut,
   [out] unsigned long* pcbNeeded
 );
</pre></div>
</dd></dl><p><b>DiskId: </b>The identifier representing the <b>ClusPrepDisk</b>
for which to retrieve the device ID data.</p><p><b>cbData: </b>The size, in bytes, of the <i>pbData</i>
buffer passed to the server.</p><p><b>pbData: </b>The output buffer for the device ID
data.</p><p><b>pcbDataOut: </b>The size, in bytes, of the amount
of data written to <i>pbData</i> on a successful return.</p><p><b>pcbNeeded: </b>If ERROR_INSUFFICIENT_BUFFER is
returned, then this parameter contains the size, in bytes, of the buffer
required for a successful call.</p><p><b>Return Values: </b>A signed 32-bit value that
indicates return status. If the method returns a negative value, it has failed.
Zero or positive values indicate success, with the lower 16 bits in positive
nonzero values containing warnings or flags defined in the method implementation.
For more information about Win32 error codes and <a href="../ms-dtyp/a9046ed2-bfb2-4d56-a719-2824afce59ac" data-linktype="relative-path">HRESULT</a>
values, see <a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a>
sections <a href="../ms-erref/18d8fbe8-a967-4f1c-ae50-99ca8e491d2d" data-linktype="relative-path">2.2</a>
and <a href="../ms-erref/0642cb2f-2075-4469-918c-4441e69c548a" data-linktype="relative-path">2.1</a>.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>0x00000000</p>
  <p>S_OK</p>
  </td>
  <td>
  <p>The call was successful.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x8007007A</p>
  <p>ERROR_INSUFFICIENT_BUFFER</p>
  </td>
  <td>
  <p><i>pbData</i> is not large enough.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x80070032</p>
  <p>ERROR_NOT_SUPPORTED</p>
  </td>
  <td>
  <p>The disk does not support device ID data.</p>
  </td>
 </tr><tr>
  <td>
  <p>0x80070548</p>
  <p>ERROR_INVALID_SERVER_STATE</p>
  </td>
  <td>
  <p>The server&#39;s <b>Prepare State</b> is not Online.</p>
  </td>
 </tr></tbody></table>
</dd>
<dd>
<p>For any other condition, this method MUST return a
value that is not one of the values listed in the preceding table. The client
MUST behave in one consistent, identical manner for all values that are not
listed in the preceding table.</p>
</dd></dl><p>Exceptions Thrown: No exceptions are thrown beyond those
thrown by the underlying RPC protocol <a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a>.</p><p>The opnum field value for this method is 22.</p><p>When processing this call, the server MUST do the following:</p><ul><li><p><span><span> 
</span></span>Obtain the <b>ClusPrepDisk</b> identified by the <i>DiskId</i>
parameter as described in section <a href="c17ce220-d244-45c9-95c0-4c31942253ee" data-linktype="relative-path">3.2.4</a>.</p>
</li><li><p><span><span> 
</span></span>Retrieve the page 83h <a href="b30bcd1c-8ff6-46d2-a27e-61bd85ace9f4#gt_c8818c63-7458-4054-a17d-bea04fa50618" data-linktype="relative-path">SCSI</a> data defined in <a href="https://go.microsoft.com/fwlink/?LinkId=90528" data-linktype="external">[SPC-3]</a> section
7.6.3.1 in an implementation-specific way for the given disk.</p>
</li><li><p><span><span> 
</span></span>If the retrieved 83h SCSI data does not contain at least one
identifier of the type <b>SCSI name string</b>, <b>EUI-64 based</b>  or <b>NAA</b>
as defined in <b>[SPC-3]</b> section 7.6.3.1, then return ERROR_NOT_SUPPORTED.</p>
</li><li><p><span><span> 
</span></span>If the data buffer <i>pbData</i> with size <i>cbData</i> is not
large enough to store the SCSI page 83 data formatted as a <a href="40cfac80-a434-44e8-a802-79f36e2b5d7f" data-linktype="relative-path"><b>STORAGE_DEVICE_ID_DESCRIPTOR</b></a>
structure, then return ERROR_INSUFFICIENT_BUFFER.</p>
</li><li><p><span><span> 
</span></span>Pack the data <i>pbData</i> formatted as a <b>STORAGE_DEVICE_ID_DESCRIPTOR</b>
structure.</p>
</li></ul><p>The server returns the following data to the client:</p><ul><li><p><span><span> 
</span></span>A <b>STORAGE_DEVICE_ID_DESCRIPTOR</b> with SCSI page 83h data for
the <a href="b30bcd1c-8ff6-46d2-a27e-61bd85ace9f4#gt_c4133b2a-a990-4042-ba44-7fda3090f118" data-linktype="relative-path">disk</a></p>
</li></ul></div>