<div class="content" name="ApiOpenNodeEx" uuid="a4e4a533-09b5-4b69-b4ae-3e5436ae2390"><p>(Protocol Version 3) The ApiOpenNodeEx method SHOULD<a id="Appendix_A_Target_97"></a><a aria-label="Product behavior note 97" href="1d58eff8-a042-478c-972c-8e9c76a3f978#Appendix_A_97" data-linktype="relative-path">&lt;97&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_feef37b3-c173-4f51-aab6-b55a6366259b" data-linktype="relative-path">cluster</a></span> <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_762051d8-4fdc-437e-af9d-3f4da77c3c7d" data-linktype="relative-path">node</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.
ApiOpenNodeEx 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 node to specify for
the <i>lpszNodeName</i> parameter in one of two ways. A node can have a
well-known name if it 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_NODE, as specified in section 3.1.4.2.8. This
method obtains a list of all node 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 can then examine names or open nodes to call additional methods to determine
which nodes to operate on.</p><p>The server SHOULD accept an ApiOpenNodeEx 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> HNODE_RPC ApiOpenNodeEx(
   [in, string] LPCWSTR lpszNodeName,
   [in] DWORD dwDesiredAccess,
   [out] DWORD * lpdwGrantedAccess,
   [out] error_status_t *Status,
   [out] error_status_t *rpc_status
 );
</pre></div>
</dd></dl><p><b>lpszNodeName: </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 <span><a href="694e5e7a-5833-4f3d-b47e-323ee1d452c2#gt_9a7bc8b3-3374-4608-8f73-be20a90b898b" data-linktype="relative-path">computer name</a></span> of the
node 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, with the additional stipulation that if the server sets <i>lpdwGrantedAccess</i>
to GENERIC_READ and if the client has the backup privilege, as defined in <span><a href="../ms-lsad/1b5471ef-4c33-4a91-b079-dfcbb82f05cc" data-linktype="relative-path">[MS-LSAD]</a></span>,
then the returned context handle can also be used in a subsequent call to <span><a href="e0485cd4-d941-4496-a443-3d14c206f90d" data-linktype="relative-path">ApiMoveGroupToNode</a></span>.</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>ERROR_CLUSTER_NODE_NOT_FOUND 0x000013B2</td>
  <td>A node that matches the name lpszNodeName was not found in the cluster configuration.</td>
 </tr><tr>
  <td>RPC_S_PROCNUM_OUT_OF_RANGE 0x000006D1</td>
  <td>The server does not support this method.</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 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="76c24b3c-2d90-49b4-86b0-68b14e683bf4" data-linktype="relative-path">HNODE_RPC</a></span>
(section 2.2.1.2) context handle to indicate success; otherwise, it MUST return
NULL.</p></div>