<div class="content" name="ApiOpenNetInterfaceEx" uuid="153dd985-2c75-4486-b98c-9b3f06bc6dc6"><p>(Protocol Version 3) The ApiOpenNetInterfaceEx method SHOULD<a id="Appendix_A_Target_101"></a><a aria-label="Product behavior note 101" href="1d58eff8-a042-478c-972c-8e9c76a3f978#Appendix_A_101" data-linktype="relative-path">&lt;101&gt;</a> establish context on the <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_434b0234-e970-4e8c-bdfa-e16a30d96703" data-linktype="relative-path">server</a></span>
about the interaction of a <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_60e0e1fa-66fe-41e1-b5e3-ceab97e53506" data-linktype="relative-path">client</a></span> with the
specified <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_1e84f613-804f-42bb-a523-658b8ab0df6a" data-linktype="relative-path">cluster network interface</a></span>
by using the current <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_8a7f6700-8311-45bc-af10-82e10accd331" data-linktype="relative-path">RPC</a></span> connection.
ApiOpenNetInterfaceEx returns a context handle so that the client can refer to
the context that is created in subsequent method calls.</p><p>The server MUST determine the level of access to be granted
to the client (section <span><a href="a249a463-3d3b-4058-abf6-3024d81806a0" data-linktype="relative-path">3.1.4</a></span>). Upon
success, the server MUST associate that level of access with the node context
it has established.</p><p>The client can determine the name of the cluster network
interface in several ways to specify for the <i>lpszNetInterfaceName</i>
parameter. A cluster network interface can have a well-known name if the
cluster network interface was configured as such by using
implementation-specific methods between servers. Or, a client can use <span><a href="3901b3f0-1737-481f-9815-282471183abd" data-linktype="relative-path">ApiCreateEnum</a></span>
with enumeration type CLUSTER_ENUM_NETINTERFACE, as specified in section
3.1.4.2.8. This method obtains a list of all cluster network interface names in
the <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_93ba0f62-7125-4a3e-ab60-5fd4f504bc8c" data-linktype="relative-path">cluster
state</a></span>. The client then can examine names or open cluster network
interfaces to call additional methods to determine which cluster network
interfaces to operate on. Finally, a client supplying the name of the <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_762051d8-4fdc-437e-af9d-3f4da77c3c7d" data-linktype="relative-path">node</a></span>
and network to the <span><a href="60f26e20-e6af-4dc1-b237-aa08b71e4a38" data-linktype="relative-path">ApiGetNetInterface</a></span>
method, will get the corresponding cluster network interface object name for
that combination, which then can be provided to this method.</p><p>The server SHOULD accept an ApiOpenNetInterfaceEx request if
its <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_a93e2fea-3006-4a06-b48f-fdb36d9abac9" data-linktype="relative-path">protocol
server state</a></span> is read-only and MUST accept the request for processing
if it is in the read/write state, as specified in section <span><a href="756547e7-ca64-4b7c-9f1b-2b1fbc6153d3" data-linktype="relative-path">3.1.1</a></span>.</p><dl>
<dd>
<div><pre> HNETINTERFACE_RPC ApiOpenNetInterfaceEx(
   [in, string] LPCWSTR lpszNetInterfaceName,
   [in] DWORD dwDesiredAccess,
   [out] DWORD * lpdwGrantedAccess,
   [out] error_status_t *Status,
   [out] error_status_t *rpc_status
 );
</pre></div>
</dd></dl><p><b>lpszNetInterfaceName: </b>A null-terminated <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_b069acb4-e364-453e-ac83-42d469bb339e" data-linktype="relative-path">Unicode
string</a></span> that contains the name of the cluster network interface for
which to establish context on the server.</p><p><b>dwDesiredAccess: </b>The value for this parameter
is the same as specified for <i>dwDesiredAccess</i> in <span><a href="00ce494d-0c74-44fd-8276-c73665cf616b" data-linktype="relative-path">ApiOpenClusterEx</a></span>.</p><p><b>lpdwGrantedAccess: </b>The value for this
parameter is the same as specified for <i>lpdwGrantedAccess</i> in
ApiOpenClusterEx.</p><p><b>Status: </b>Indicates the status of this
operation. The server MUST set <i>Status</i> to the following error codes for
the specified conditions.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>ERROR_SUCCESS 0x00000000</td>
  <td>Success.</td>
 </tr><tr>
  <td>ERROR_ACCESS_DENIED 0x00000005</td>
  <td>dwDesiredAccess indicates a level of access exceeding what the client is entitled to (section 3.1.4).</td>
 </tr><tr>
  <td>ERROR_INVALID_PARAMETER 0x00000057</td>
  <td>dwDesiredAccess is invalid, as specified earlier in this section.</td>
 </tr><tr>
  <td>RPC_S_PROCNUM_OUT_OF_RANGE 0x000006D1</td>
  <td>The server does not support this method.</td>
 </tr><tr>
  <td>ERROR_CLUSTER_NETINTERFACE_NOT_FOUND 0x000013b7</td>
  <td>A cluster network interface that matches the name lpszNetInterfaceName was not found in the cluster configuration.</td>
 </tr></tbody></table>
</dd>
<dd>
<p>For any other condition, the server sets <i>Status</i>
to a value that is not one of the values listed in the preceding table. The
client MUST treat all values that are not listed in the preceding table the
same, except as specified in section <span><a href="ca75805a-4b39-4074-8b5b-dbaae6e81b1f" data-linktype="relative-path">3.2.4.6</a></span>.</p>
</dd></dl><p><b>rpc_status: </b>A 32-bit integer used to indicate
success or failure. The RPC runtime MUST indicate, by writing to this
parameter, whether it succeeded in executing this method on the server. The
encoding of the value passed in this parameter MUST conform to encoding for
comm_status and fault_status, as specified in Appendix E of <span><a href="https://go.microsoft.com/fwlink/?LinkId=89824" data-linktype="external">[C706]</a></span>.</p><p><b>Return Values: </b>The method MUST return a valid <span><a href="d0123069-316e-430d-8b9e-90d2530376b2" data-linktype="relative-path">HNETINTERFACE_RPC</a></span>
(section 2.2.1.8) context handle to indicate success; otherwise, it MUST return
NULL.</p></div>