<div class="content" name="IDL_DRSFinishDemotion" uuid="0bf530e8-1be0-4f48-b8c2-208031a8725f"><p>The IDL_DRSFinishDemotion method either performs one or more
steps toward the complete removal of a <span><a href="e5c2026b-f732-4c9d-9d60-b945c0ab54eb#gt_76a05049-3531-4abd-aec8-30e19954b4bd" data-linktype="relative-path">DC</a></span> from an <span><a href="e5c2026b-f732-4c9d-9d60-b945c0ab54eb#gt_afdbd6cd-9f55-4d2f-a98e-1207985534ab" data-linktype="relative-path">AD LDS</a></span>
<span><a href="e5c2026b-f732-4c9d-9d60-b945c0ab54eb#gt_fd104241-4fb3-457c-b2c4-e0c18bb20b62" data-linktype="relative-path">forest</a></span>,
or it undoes the effects of the first phase of removal (performed by <span><a href="faca17da-3f7f-4092-98db-fd2ce7d98b8c" data-linktype="relative-path">IDL_DRSInitDemotion</a></span>).
This method is supported by AD LDS only.</p><dl>
<dd>
<div><pre> ULONG IDL_DRSFinishDemotion(
   [in, ref] DRS_HANDLE hDrs,
   [in] DWORD dwInVersion,
   [in, ref, switch_is(dwInVersion)] 
     DRS_MSG_FINISH_DEMOTIONREQ* pmsgIn,
   [out, ref] DWORD* pdwOutVersion,
   [out, ref, switch_is(*pdwOutVersion)] 
     DRS_MSG_FINISH_DEMOTIONREPLY* pmsgOut
 );
</pre></div>
</dd></dl><p><b>hDrs: </b>The <span><a href="e5c2026b-f732-4c9d-9d60-b945c0ab54eb#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a></span> context handle
returned by the <span><a href="605b1ea1-9cdc-428f-ab7a-70120e020a3d" data-linktype="relative-path">IDL_DRSBind</a></span> method.</p><p><b>dwInVersion: </b>The version of the request
message.</p><p><b>pmsgIn: </b>A pointer to the request message.</p><p><b>pdwOutVersion: </b>A pointer to the version of the
response message.</p><p><b>pmsgOut: </b>A pointer to the response message.</p><p><b>Return Values: </b>0 if successful, otherwise a <span><a href="e5c2026b-f732-4c9d-9d60-b945c0ab54eb#gt_459db7bd-5066-44e3-89c1-f0e4806b7a1b" data-linktype="relative-path">Windows
error code</a></span>.</p><p><b>Exceptions Thrown:</b> This method might throw the
following exceptions beyond those thrown by the underlying RPC protocol (as
specified in <span><a href="../ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15" data-linktype="relative-path">[MS-RPCE]</a></span>):
ERROR_INVALID_HANDLE, ERROR_DS_DRS_EXTENSIONS_CHANGED,
ERROR_DS_DIFFERENT_REPL_EPOCHS, and  ERROR_INVALID_PARAMETER.</p></div>