<div class="content" name="RasRpcGetSystemDirectory" uuid="7a93073e-2ff6-4254-8ed1-23c24bbdcc22"><p>The <b>RasRpcGetSystemDirectory</b> method retrieves the
path of the system directory.</p><dl>
<dd>
<div><pre> UINT RasRpcGetSystemDirectory(
   [in] handle_t h,
   [in, out, string, size_is(uSize)] 
     LPWSTR lpBuffer,
   [in, range(0, RASRPC_MAX_PATH)] UINT uSize
 );
</pre></div>
</dd></dl><p><b>h: </b>An RPC binding handle as specified in <a href="https://go.microsoft.com/fwlink/?LinkId=89824" data-linktype="external">[C706]</a> section 2.</p><p><b>lpBuffer: </b>A null-terminated <a href="fc2dfae9-0d04-4e1d-97c9-c51c2dc06c3b#gt_c305d0ab-8b94-461a-bd76-13b40cb8c4d8" data-linktype="relative-path">Unicode</a> string that is
populated with the path of the system directory. The length of the string MUST
be equal to <i>uSize</i>.</p><p><b>uSize: </b>Specifies the size of the <i>lpBuffer</i>
in Unicode characters. This value MUST be equal to 260.</p><p><b>Return Values: </b>Specifies the return status as
explained in section <a href="c39d153e-2f97-4e11-8aff-bcf983869dc9" data-linktype="relative-path">2.2.1.2.218</a>
for <b>retcode</b> field.</p><dl>
<dd>
<p>The return value can be one of the following error
codes. All other error values MUST be treated the same by the <a href="fc2dfae9-0d04-4e1d-97c9-c51c2dc06c3b#gt_6132dde1-9eae-4923-987e-9750c3dbca89" data-linktype="relative-path">RRASM client</a>.</p>
</dd>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>0x00000000</td>
  <td>The actual processing to retrieve the system directory on the remote server has failed.</td>
 </tr><tr>
  <td>Any other values</td>
  <td>Indicate the length of the string in Unicode characters copied to the buffer.</td>
 </tr></tbody></table>
</dd></dl><p><b>Exceptions Thrown:</b> This method throws an exception
with the exception code RPC_S_ACCESS_DENIED (0x00000005) if the client is not
an <a href="fc2dfae9-0d04-4e1d-97c9-c51c2dc06c3b#gt_eb335f5b-619b-46ed-9138-06e9910108c3" data-linktype="relative-path">administrator</a> on the <a href="fc2dfae9-0d04-4e1d-97c9-c51c2dc06c3b#gt_f91f3fc7-d1a1-4a07-8c92-d19eb0c9acb0" data-linktype="relative-path">RRASM server</a>, with access
permission to perform the operation.<a id="Appendix_A_Target_338"></a><a aria-label="Product behavior note 338" href="3bb906f0-b077-47ab-ad11-d8d807afde26#Appendix_A_338" data-linktype="relative-path">&lt;338&gt;</a></p><dl>
<dd>
<p>The Opnum field value for this method is 11. </p>
</dd>
<dd>
<p>When processing this call, the RRASM server SHOULD
do the following:</p>
</dd></dl><ul><li><p><span><span>  </span></span>Validate
as specified in section <a href="83a083ac-cd43-44bf-a301-7c88e64a32fe" data-linktype="relative-path">3.3.4</a>
whether this method was called by a client that is an administrator of the
RRASM server.<a id="Appendix_A_Target_339"></a><a aria-label="Product behavior note 339" href="3bb906f0-b077-47ab-ad11-d8d807afde26#Appendix_A_339" data-linktype="relative-path">&lt;339&gt;</a></p>
</li><li><p><span><span>  </span></span>If <i>uSize</i>
is less than 260, return an error other than one of the errors specified in the
preceding table.</p>
</li><li><p><span><span>  </span></span>Call
the abstract interface <b>Invoke RASRPC</b> method specifying the operation and
the parameters to enable RRAS server to perform the required management task.</p>
</li><li><p><span><span>  </span></span>If
all validations are successful, return the processing information result for
the RRAS server and populate the <i>lpBuffer</i> with the system directory path
returned by the RRAS server. Return the length of the string in Unicode characters
populated to the <i>lpBuffer</i>. </p>
</li></ul></div>