220.127.116.11.117 ApiOpenNodeEx (Opnum 118)
(Protocol Version 3) The ApiOpenNodeEx method SHOULD<75> establish context on the server about the interaction of a client with the specified cluster node by using the current RPC connection. ApiOpenNodeEx returns a context handle so that the client can refer to the context that is created in subsequent method calls.
The server MUST determine the level of access to be granted to the client (section 3.1.4). Upon success, the server MUST associate that level of access with the node context it has established.
The client can determine the name of the node to specify for the lpszNodeName 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 ApiCreateEnum with enumeration type CLUSTER_ENUM_NODE, as specified in section 18.104.22.168.8. This method obtains a list of all node names in the cluster state. The client can then examine names or open nodes to call additional methods to determine which nodes to operate on.
The server SHOULD accept an ApiOpenNodeEx request if its protocol server state is read-only, and MUST accept the request for processing if it is in the read/write state, as specified in section 3.1.1.
HNODE_RPC ApiOpenNodeEx( [in, string] LPCWSTR lpszNodeName, [in] DWORD dwDesiredAccess, [out] DWORD * lpdwGrantedAccess, [out] error_status_t *Status, [out] error_status_t *rpc_status );
lpszNodeName: A null-terminated Unicode string that contains the computer name of the node for which to establish context on the server.
dwDesiredAccess: The value for this parameter is the same as specified for dwDesiredAccess in ApiOpenClusterEx.
lpdwGrantedAccess: The value for this parameter is the same as specified for lpdwGrantedAccess in ApiOpenClusterEx, with the additional stipulation that if the server sets lpdwGrantedAccess to GENERIC_READ and if the client has the backup privilege, as defined in [MS-LSAD], then the returned context handle can also be used in a subsequent call to ApiMoveGroupToNode.
Status: Indicates the status of this operation. The server MUST set Status to the following error codes for the specified conditions.
dwDesiredAccess indicates a level of access exceeding what the client is entitled to (section 3.1.4).
dwDesiredAccess is invalid, as specified earlier in this section.
A node that matches the name lpszNodeName was not found in the cluster configuration.
The server does not support this method.
For any other condition, the server sets Status 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 22.214.171.124.
rpc_status: 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 [C706].
Return Values: The method MUST return a valid HNODE_RPC (section 126.96.36.199) context handle to indicate success; otherwise, it MUST return NULL.