<div class="content" name="RMIBEntryCreate" uuid="4a8dc1a9-4b2a-4eba-bd0e-df9e8dc97908"><p>The <b>RMIBEntryCreate</b> method<a id="Appendix_A_Target_287"></a><a aria-label="Product behavior note 287" href="3bb906f0-b077-47ab-ad11-d8d807afde26#Appendix_A_287" data-linktype="relative-path">&lt;287&gt;</a> creates an MIB entry that is
used by the RRAS to create a route entry in the IPv4 routing table.</p><dl>
<dd>
<div><pre> DWORD RMIBEntryCreate(
   [in] DIM_HANDLE hDimServer,
   [in] DWORD dwPid,
   [in] DWORD dwRoutingPid,
   [in] PDIM_MIB_ENTRY_CONTAINER pInfoStuct
 );
</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>dwPid: </b>Specifies the transport protocol. </p><p><b>dwRoutingPid: </b>Specifies the <a href="fc2dfae9-0d04-4e1d-97c9-c51c2dc06c3b#gt_edf0a770-0034-4c2d-8acd-68508bac32ae" data-linktype="relative-path">routing protocol</a>. The value
of this parameter MUST be set to IPRTRMGR_PID (0x00002710). The method MUST
return an error other than those specified in the return value table for any
other value.</p><p><b>pInfoStuct: </b>This is a pointer to a <a href="4305d67f-9273-49fe-a067-909b6ae8a341" data-linktype="relative-path"><b>DIM_MIB_ENTRY_CONTAINER (section 2.2.1.2.19)</b></a>
structure with valid <b>dwMibInEntrySize</b> and <b>pMibInEntry</b> fields. The
<b>dwMibOutEntrySize</b> and <b>pMibOutEntry</b> of the structure are ignored
by the server for this method. <b>dwMibInEntrySize</b> MUST be set to the size
of data being passed in <b>pMibInEntry</b>. If <i>pInfoStruct</i> is NULL, an
error other than those specified in the return value table is returned.
Otherwise, the pointer is treated as a pointer to the <b>DIM_MIB_ENTRY_CONTAINER</b>
structure.  </p><dl>
<dd>
<p>Because the <i>dwRoutingPid</i> parameter of this
method MUST take the value IPRTRMGR_PID (0x00002710), the <b>pMibInEntry</b>
field of <i>pInfoStruct</i> MUST be a pointer to <b>MIB_OPAQUE_INFO</b> (section
<a href="169e435d-a975-4c1c-bf41-55fd2bd76125" data-linktype="relative-path">2.2.1.2.52</a>). The <b>dwId</b>
and <b>rgbyData</b> fields of <b>MIB_OPAQUE_INFO</b> MUST be set to one of the
following values: </p>
</dd></dl><p><span>§<span>  </span></span><b>dwId</b>
set to the value ROUTE_MATCHING (0x0000001F).</p><p><span>§<span>  </span></span><b>rgbyData</b>
MUST be a pointer to a <b>MIB_IPDESTROW</b> (section <a href="3e73e08b-3421-4875-a433-a1279deeefe7" data-linktype="relative-path">2.2.1.2.20</a>) structure. A
route corresponding to data in <b>rgbyData</b> is added in the IPv4 route
table. The route is created with the following fields specified: </p><dl>
<dd>
<p><span>§<span> 
</span></span><b>ForwardRow:</b> Contains the <b>MIB_IPFORWARDROW</b> (section <a href="5dca234b-bea4-4e67-958e-5459a32a7b71" data-linktype="relative-path">2.2.1.2.35</a>) structure that
contains the route information with the following fields set:</p>
<dl>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardDest</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardMask</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardPolicy</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardNextHop</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>ForwardType</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>ForwardProto</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardAge</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardNextHopAS</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardIfIndex</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardProto</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardMetric1</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardMetric2</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardMetric3</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardMetric4</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardMetric5</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardPreference</b></p>
</dd></dl></dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardViewSet:</b> This MUST be the view information of the
<b>ForwardRow</b> with the following fields specified, see <b>INTERFACE_ROUTE_INFO</b>
(section <a href="784d8544-140a-4769-b659-7d3168de9242" data-linktype="relative-path">2.2.1.2.11</a>):</p>
<dl>
<dd>
<p><span>§<span> 
</span></span><b>dwRtInfoDest</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwRtInfoMask</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwRtInfoNextHop</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwRtInfoMetric1</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwRtInfoMetric2</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwRtInfoMetric3</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwRtInfoIfIndex</b></p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwRtInfoProto</b></p>
</dd></dl></dd>
<dd>
<p><span>§<span> 
</span></span><b>pMibInEntry:</b> The following fields are set to these values
irrespective of the values specified:</p>
<dl>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardPolicy</b> is set to 0.</p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardMetric4</b> and <b>dwForwardMetric5</b> are set to
MIB_IPROUTE_METRIC_UNUSED (-1).</p>
</dd>
<dd>
<p><span>§<span> 
</span></span><b>dwForwardPreference</b> is set to IP_PRIORITY_DEFAULT_METRIC
(0x0000007F).</p>
</dd></dl></dd>
<dd>
<p>If <b>pMibInEntry</b> is NULL, an
error other than those specified in the return values table is returned.
Otherwise the pointer to <b>pMibInEntry</b> is cast to a pointer to <b>MIB_OPAQUE_INFO</b>.</p>
</dd>
<dd>
<p>If <b>dwMibInEntrySize</b> does
not match the size of <span><b>MIB_IPDESTROW</b></span> an
error other than those specified in the return values table is returned. </p>
</dd></dl><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 <a href="../ms-erref/1bc92ddf-b79e-413c-bbaa-99a5281a6c90" data-linktype="relative-path">[MS-ERREF]</a>
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>ERROR_SUCCESS 0x00000000</td>
  <td>The call was successful.</td>
 </tr><tr>
  <td>ERROR_ACCESS_DENIED 0x00000005</td>
  <td>The calling application does not have sufficient privileges, as specified in section 2.1.1.1.</td>
 </tr></tbody></table>
</dd></dl><p>The opnum field value for this method is 26.</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 <i>pInfoStruct</i> is NULL, return an error other than those
in the preceding table.</p>
</li><li><p><span><span> 
</span></span>If <i>dwPid</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 that the RRAS server returns while processing
this request. Otherwise return ERROR_SUCCESS (0x00000000).</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>