3.1.4.2.6 ApiGetQuorumResource (Opnum 5)

msdn link

(Protocol Version 3) The ApiGetQuorumResource method returns information about how quorum is configured in the cluster.

The server MUST return:

  • The name of the resource that is participating in quorum for the cluster or the null Unicode string, indicating that there is no specific resource associated with cluster quorum.

  • The fully qualified disk path associated with the quorum resource that contains the cluster configuration data file area or the null Unicode string if the quorum resource name is the null Unicode string.

  • A flag indicating the type of quorum that is configured.

The server SHOULD accept an ApiGetQuorumResource 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.

The server SHOULD accept an ApiGetQuorumResource request if the client's access level is at least "Read" (section 3.1.4).

 error_status_t ApiGetQuorumResource(
   [out, string] LPWSTR *lpszResourceName,
   [out, string] LPWSTR *lpszDeviceName,
   [out] DWORD *pdwMaxQuorumLogSize,
   [out] error_status_t *rpc_status
 );

lpszResourceName: The address of a pointer where the server MUST, upon successful completion of this method, write the address of a Unicode string buffer containing either the name of the quorum resource or the null Unicode string (0x0000) if no specific resource is associated with cluster quorum. The server MUST allocate as much memory as is required to return the name. If the method fails, this parameter MUST be ignored.

lpszDeviceName: The address of a pointer where the server MUST, upon successful completion of this method, write the address of a Unicode string buffer containing either a path on the disk represented by the resource identified in the lpszResourceName parameter or the null Unicode string if the lpszResourceName parameter is set to the null Unicode string. The server MUST allocate as much memory as is required to return the path. If the method fails, this parameter MUST be ignored.

pdwMaxQuorumLogSize:

  • The address of a 32-bit integer where the server MUST, upon successful completion of this method, write one of the following values:

    • 0x00000000, indicating that the cluster has been configured with Majority Node Set quorum. The lpszResourceName and lpszDeviceName parameters contain null-terminated strings.

    • 0x00000400, indicating that the cluster has been configured with either Hybrid or Witness quorum. When Hybrid is configured, the lpszResourceName and lpszDeviceName parameters both contain non-null-terminated strings, while only the lpszResourceName parameter contains a non-null-terminated string for a Witness quorum.

      A return value other than 0x0000000 or 0x00000400 indicates that the cluster is configured with Shared Disk quorum. Both the lpszResourceName and lpszDeviceName parameters contain non-null strings.

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 the following error codes for the conditions that are specified as follows.

Return value/code

Description

0x00000000

ERROR_SUCCESS

Success.

For any other condition, the server MUST set Status to 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, except as specified in section 3.2.4.6.