3.1.4.1.108 ApiSetServiceAccountPassword (Opnum 108)

(Protocol Version 2) The ApiSetServiceAccountPassword method SHOULD<74> instruct the server to change the password of the operational identity that each configured node uses to run the cluster service. The operation is sent to all active nodes in the cluster where the password of the account is updated as appropriate for the server.

Each configured node MUST use the same operational identity.

The server fails this method using ERROR_ALL_NODES_NOT_AVAILABLE if one or more configured nodes are not active in the cluster and IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES (as specified in section 2.2.2.9) is not set in the dwFlags parameter.

The server accepts an ApiSetServiceAccountPassword request for processing if it is in the read/write state, as specified in section 3.1.1.

 error_status_t ApiSetServiceAccountPassword(
   [in, string] LPWSTR lpszNewPassword,
   [in] IDL_CLUSTER_SET_PASSWORD_FLAGS dwFlags,
   [out, size_is(ReturnStatusBufferSize), length_is(*SizeReturned)] 
     IDL_CLUSTER_SET_PASSWORD_STATUS ReturnStatusBufferPtr[*],
   [in] DWORD ReturnStatusBufferSize,
   [out] DWORD *SizeReturned,
   [out] DWORD *ExpectedBufferSize
 );

lpszNewPassword: A pointer to a null-terminated, non-null Unicode string buffer containing the password to be set for the cluster identity.

dwFlags: A 32-bit integer providing a value from the IDL_CLUSTER_SET_PASSWORD_FLAGS enumeration, as specified in section 2.2.2.9, that the server MUST use to modify the requirements for completing this method. When the one supported value, IDL_CLUSTER_SET_PASSWORD_IGNORE_DOWN_NODES, is set, the server MUST proceed with changing the password when one or more configured nodes are not active in the cluster.

ReturnStatusBufferPtr: A pointer to an array of IDL_CLUSTER_SET_PASSWORD_STATUS structures, as specified in section 2.2.3.6, with one array element per active node in the cluster, that the server MUST write upon successful completion of this method. Each element contains information about the status of a node's attempt at changing the password of the cluster identity. The client MUST set this parameter to a non-null value even if no return information is desired.

ReturnStatusBufferSize: A 32-bit integer indicating the size, in IDL_CLUSTER_SET_PASSWORD_STATUS sized elements, of the buffer represented by the ReturnStatusBufferPtr parameter. The client MUST set this value to zero if no return information is desired.

SizeReturned: A pointer to a 32-bit integer that the server MUST fill in, upon successful completion of the method, indicating the number of IDL_CLUSTER_SET_PASSWORD_STATUS sized elements that were written to the buffer pointed to by the ReturnStatusBufferPtr parameter.

ExpectedBufferSize: A pointer to a 32-bit integer that the server MUST fill in, when returning ERROR_MORE_DATA, indicating the total number of IDL_CLUSTER_SET_PASSWORD_STATUS sized elements that are needed in the buffer pointed to by the ReturnStatusBufferPtr parameter.

Return Values: The method MUST return the following error codes for the specified conditions.

Return value/code

Description

0x00000000

ERROR_SUCCESS

Success.

0x000000EA

ERROR_MORE_DATA

 The ReturnStatusBufferSize parameter indicates that the ReturnStatusBufferPtr buffer is too small to hold the information returned by the server.

0x000013AD

ERROR_ALL_NODES_NOT_AVAILABLE

See the preceding text for when this error can occur.

For any other condition, this method MUST return a value that is not one of the values listed in the preceding table. The client MUST behave in one consistent, identical manner for all values that are not listed in the preceding table. The client SHOULD treat errors specified in section 3.2.4.6 as recoverable errors and initiate the reconnect procedure as specified in section 3.2.4.6.