<div class="content"><p>The <b>CprepDiskGetDsms</b> method returns the <a href="b30bcd1c-8ff6-46d2-a27e-61bd85ace9f4#gt_baf4ade8-7f2d-48e7-a45d-9469c5326ab8" data-linktype="relative-path">DSMs</a> installed on the
system.</p><dl>
<dd>
<div><pre> HRESULT CprepDiskGetDsms(
   [in] unsigned long Size,
   [out] unsigned long* pReserved,
   [out, size_is(Size), length_is(*pReserved)] 
     byte* RegisteredDsms
 );
</pre></div>
</dd></dl><p><b>Size: </b>The size, in bytes, of the <i>RegisteredDsms</i>
parameter.</p><p><b>pReserved: </b>After completion of the method, the
client MUST ignore this value.</p><p><b>RegisteredDsms: </b>The buffer that holds the DSM
data. The format of the buffer is a <a href="e5ba2b9b-bbf6-451e-8641-d8a4cfa3013d" data-linktype="relative-path">REGISTERED_DSMS</a> structure.</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>0x800700EA</p>
  <p>ERROR_MORE_DATA</p>
  </td>
  <td>
  <p><i>RegisteredDsms</i> was not large enough to hold all
  the data.</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 38.</p><p>When processing this call, the server MUST do the following:</p><ul><li><p><span><span> 
</span></span>Using an implementation-specific process, determine the set of
DSMs on the system.</p>
</li><li><p><span><span> 
</span></span>Populate the <i>RegisteredDsms</i> parameter with DSM data in the
format of a REGISTERED_DSMS structure.</p>
</li></ul><p>The server returns the following information to the client:</p><ul><li><p><span><span> 
</span></span>If the number of bytes required to return all DSMs in the <i>RegisteredDsms</i>
parameter is larger than the size of <i>RegisteredDsms</i>, then return
ERROR_MORE_DATA.</p>
</li><li><p><span><span> 
</span></span>The DSMs used by the system.</p>
</li></ul></div>