<div class="content" name="RRouterInterfaceGetInfo" uuid="2fbcf316-2082-4f98-878b-eab5d0c2da1d"><p>The <b>RRouterInterfaceGetInfo</b> method<a id="Appendix_A_Target_263"></a><a aria-label="Product behavior note 263" href="3bb906f0-b077-47ab-ad11-d8d807afde26#Appendix_A_263" data-linktype="relative-path">&lt;263&gt;</a> retrieves information for a
specified interface, <i>hInterface</i>, on a specified RRAS server, <i>hDimServer</i>.
This method is used to find information about existing interfaces on the RRAS.
The information is returned in <i>pInfoStruct</i>. The caller SHOULD free the
memory pointed to by <i>pInfoStruct</i>.</p><dl>
<dd>
<div><pre> DWORD RRouterInterfaceGetInfo(
   [in] DIM_HANDLE hDimServer,
   [in] DWORD dwLevel,
   [in, out] PDIM_INFORMATION_CONTAINER pInfoStruct,
   [in] DWORD hInterface
 );
</pre></div>
</dd></dl><p><b>hDimServer: </b>A handle to the RRASM server where
the call is executed, see section <a href="1f8cdbcc-9791-4a35-ad78-878b8d110e15" data-linktype="relative-path">3.1.3</a>.</p><p><b>dwLevel: </b>This is of type <b>DWORD</b> and MUST
be set to any of the following values. </p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>0</td>
  <td>After the function returns, the memory pointed to by pInfoStruct-&gt;pBuffer is interpreted as MPRI_INTERFACE_0 (section 2.2.1.2.81).</td>
 </tr><tr>
  <td>1</td>
  <td>After the function returns, the memory pointed to by pInfoStruct-&gt;pBuffer is interpreted as MPRI_INTERFACE_1 (section 2.2.1.2.82).</td>
 </tr><tr>
  <td>2</td>
  <td>After the function returns, the memory pointed to by pInfoStruct-&gt;pBuffer is interpreted as MPRI_INTERFACE_2 (section 2.2.1.2.83).</td>
 </tr><tr>
  <td>3</td>
  <td>After the function returns, the memory pointed to by pInfoStruct-&gt;pBuffer is interpreted as MPRI_INTERFACE_3 (section 2.2.1.2.84).</td>
 </tr></tbody></table>
</dd></dl><p><b>pInfoStruct: </b>This is a pointer of type <a href="95609dbb-56aa-4b1b-a0e2-697864a141bd" data-linktype="relative-path"><b>DIM_INFORMATION_CONTAINER (section 2.2.1.2.1)</b></a>,
and DIM_INFORMATION_CONTAINER.dwBufferSize SHOULD be initialized to zero (0).
Upon successful return, the pInfoStruct-&gt;pBuffer is cast to an array of <b>MPRI_INTERFACE_0</b>,
<b>MPRI_INTERFACE_1</b>, <b>MPRI_INTERFACE_2</b>, or <b>MPRI_INTERFACE_3</b>
structures based on the <i>dwLevel</i> values.  </p><dl>
<dd>
<p>The <b>dwfOptions</b> member of <b>MPRI_INTERFACE_2</b>
and <b>MPRI_INTERFACE_3</b> SHOULD be updated as follows: </p>
</dd></dl><ul><li><p><span><span>  </span></span>If
the <b>dwfOptions</b> member has neither MPRIO_RequirePAP nor MPRIO_RequireEAP,
then enable MPRIO_RequireEncryptedPw.</p>
</li><li><p><span><span>  </span></span>If
the <b>dwfOptions</b> has none of the following flags set, then enable
MPRIO_RequireMsEncryptedPw:</p>
<ul><li><p><span><span> 
</span></span>MPRIO_RequireCHAP</p>
</li><li><p><span><span> 
</span></span>MPRIO_RequirePAP</p>
</li><li><p><span><span> 
</span></span>MPRIO_RequireEAP</p>
</li></ul></li><li><p><span><span>  </span></span>If
the <b>dwEncryptionType</b> member is not set to MPR_ET_None or
MPR_ET_Optional, enable the MPRIO_RequireDataEncryption flag.</p>
</li></ul><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>.
The interface MUST be of type ROUTER_IF_TYPE_FULL_ROUTER if <b>dwLevel</b> is
set to 2 or 3. Because the RRASM server does not maintain the interface
handles, the RRAS server SHOULD check and ensure that this handle value
represents a valid interface handle.   </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, the return value 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 listed 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 13.</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>dwLevel</i> is not supported, return an error other than
those in the preceding table.</p>
</li><li><p><span><span> 
</span></span>If the <i>hInterface</i> value specified is not associated with
an interface entry in InterfaceList that has a matching interface handle (value
being the same), return an error other than one of the errors specified in the
preceding table.</p>
</li><li><p><span><span> 
</span></span>If dwLevel value is specified as 2 or 3 and <i>lpszEntry</i> is
not present in <b>PhonebookEntryNameList</b>, 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 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>If the RRAS server has processed the request successfully,
populate the <i>pInfoStruct</i> with the information returned by the RRAS
server and return ERROR_SUCCESS.</p>
</li><li><p><span><span> 
</span></span>Otherwise return the error status returned by the RRAS server.</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>