<div class="content"><p>The <b>RRouterInterfaceUpdateRoutes</b> method<a id="Appendix_A_Target_282"></a><a aria-label="Product behavior note 282" href="3bb906f0-b077-47ab-ad11-d8d807afde26#Appendix_A_282" data-linktype="relative-path">&lt;282&gt;</a> updates routing information
for a given transport on a specified <a href="fc2dfae9-0d04-4e1d-97c9-c51c2dc06c3b#gt_95913fbd-3262-47ae-b5eb-18e6806824b9" data-linktype="relative-path">interface</a> on the RRAS server.
If a routing protocol like RIP is running (<a href="https://go.microsoft.com/fwlink/?LinkId=144668" data-linktype="external">[RFC1058]</a>), the new
routes learned are updated on the interface. This interface MUST be called only
when the interface state is ROUTER_IF_STATE_CONNECTED, otherwise an error is
returned.</p><dl>
<dd>
<div><pre> DWORD RRouterInterfaceUpdateRoutes(
   [in] DIM_HANDLE hDimServer,
   [in] DWORD hInterface,
   [in] DWORD dwTransportId,
   [in] ULONG_PTR hEvent,
   [in] DWORD dwClientProcessId
 );
</pre></div>
</dd></dl><p><b>hDimServer: </b>A handle to the RRASM server where
the call is to be executed, see section <a href="1f8cdbcc-9791-4a35-ad78-878b8d110e15" data-linktype="relative-path">3.1.3</a>.</p><p><b>hInterface: </b>The unique identifier of an
interface. This can be obtained from <a href="72bead5c-821f-4e98-bacd-0de279552379" data-linktype="relative-path"><b>RRouterInterfaceCreate (section 3.1.4.13)</b></a>
or <a href="b4cc4f8f-e2bc-4e8f-a521-08a0558d3e44" data-linktype="relative-path"><b>RRouterInterfaceGetHandle (section 3.1.4.12)</b></a>.
Since the RRASM server does not maintain the interface handles, the RRAS server
SHOULD check and ensure that this handle represents a valid interface handle.  </p><p><b>dwTransportId: </b>Specifies the transport for
which routing information needs to be updated. This MUST be one of the
following values.<a id="Appendix_A_Target_283"></a><a aria-label="Product behavior note 283" href="3bb906f0-b077-47ab-ad11-d8d807afde26#Appendix_A_283" data-linktype="relative-path">&lt;283&gt;</a></p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>PID_IPX</p>
  <p>0x0000002B</p>
  </td>
  <td>
  <p>IPX protocol</p>
  </td>
 </tr><tr>
  <td>
  <p>PID_IP</p>
  <p>0x00000021</p>
  </td>
  <td>
  <p>IPv4 protocol</p>
  </td>
 </tr></tbody></table>
</dd></dl><p><b>hEvent: </b>The calling application MUST specify
NULL for this parameter.</p><p><b>dwClientProcessId: </b>The current process
identifier where the function is called from. If this is a nonexistent process
the method will fail with an error code, as specified in <a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a>.
Otherwise the process specified is notified.</p><p><b>Return Values: </b>A 32-bit, unsigned integer
value that indicates return status. A return value of ERROR_SUCCESS
(0x00000000) indicates that the operation was completed successfully;
otherwise, it contains an error code, as specified in [MS-ERREF] or in section <a href="5c0c991a-0d3d-4fe5-9503-5128d0d49fe1" data-linktype="relative-path">2.2.4</a>. All values that are
not in the table that follows MUST be treated the same by the RRASM client. </p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Return value/code</p>
   </th>
   <th>
   <p>Description</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>
  <p>ERROR_SUCCESS</p>
  <p>0x00000000</p>
  </td>
  <td>
  <p>The call was successful.</p>
  </td>
 </tr><tr>
  <td>
  <p>ERROR_ACCESS_DENIED</p>
  <p>0x00000005</p>
  </td>
  <td>
  <p>The calling application does not have sufficient
  privileges, as specified in section <a href="9373431f-ed29-4639-9f8b-743267c9f9b6" data-linktype="relative-path">2.1.1.1</a>.</p>
  </td>
 </tr></tbody></table>
</dd></dl><p>The opnum field value for this method is 23.</p><p>When processing this call, the RRASM server MUST do the
following:</p><ul><li><p><span><span> 
</span></span>Validate, as specified in section 2.1.1.1, whether this method
was called by a client that has access to the method. If the client does not
have access, then return error ERROR_ACCESS_DENIED (0x00000005).</p>
</li><li><p><span><span> 
</span></span>If <b>RouterType</b> is ROUTER_TYPE_LAN, return an error other
than those in the preceding table.</p>
</li><li><p><span><span> 
</span></span>If <i>dwTransportId</i> is not specified in the <b>SupportedTransportsList</b>,
return an error other than those specified in the preceding table.</p>
</li><li><p><span><span> 
</span></span>Call the abstract interface <b>Invoke DIMSVC</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>Return any error status the RRAS server returns while processing
this request. Otherwise return ERROR_SUCCESS.</p>
</li></ul><p>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></div>