126.96.36.199.7 ApiSetQuorumResource (Opnum 6)
(Protocol Version 2) The ApiSetQuorumResource method instructs the server to change the cluster's quorum configuration information. The process of changing the quorum configuration information and synchronizing the change with other cluster nodes is achieved through implementation-specific methods and protocols between servers.
The cluster SHOULD<43> support the following types of quorum: Shared Disk, Majority of Nodes, and Local.
The cluster SHOULD NOT support the Hybrid and Witness styles of quorum.
The designated server resource has the following attributes:
The resource's subclass information, as specified in section 188.8.131.52, MUST indicate that it is a shared storage class resource.
The resource MUST return CLUS_CHAR_QUORUM, as specified in section 184.108.40.206, when queried for its characteristics.
The resource MUST support the CLUSCTL_RESOURCE_STORAGE_GET_DISK_INFO resource control, as specified in section 220.127.116.11.1.38.
The resource MUST NOT indicate that it is in maintenance, as specified in section 18.104.22.168.1.42.
The resource MUST NOT have any other resources dependent on it.
The configuration database is stored in a directory on the storage device represented by hResource. The path is specified via the lpszDeviceName parameter and MUST be one of the following values:
NULL, indicating that the server MUST use a default partition and directory path on the storage device represented by hResource.
A drive letter, indicating that the server MUST use a default directory path on the partition that corresponds to the specified drive letter.
A fully qualified path (drive letter and path), indicating that the server MUST place the quorum configuration data in this area.
Upon successful completion of this method, the server SHOULD designate that resource indicated by the hResource parameter as a core resource. If a different resource is associated with the quorum configuration information at the time of this method invocation (due to a previous call to ApiSetQuorumResource), then upon successful completion of this method the server SHOULD remove the core resource designation from that different resource.
The server MUST accept an ApiSetQuorumResource request only if its protocol server state is read/write, as specified in section 3.1.1.
error_status_t ApiSetQuorumResource( [in] HRES_RPC hResource, [in, string] LPCWSTR lpszDeviceName, [in] DWORD dwMaxQuorumLogSize );
lpszDeviceName: A Unicode string identifying a directory on the disk (when the hResource parameter represents a storage device) where the cluster will store its configuration database.
dwMaxQuorumLogSize: A 32-bit integer that indicates the maximum size, in bytes, to which the quorum log file will grow. If zero is supplied, then the server MUST set the log size to a default value. Whether and how a server uses a quorum log file as well as the default log size value is implementation-specific. A client can query the server for the default log size by setting dwMaxQuorumLogSize to 0, and then performing a subsequent call to the ApiGetQuorumResource method.
Return Values: The method MUST return the following error codes for the conditions that are specified as follows.
For any other condition, the server MUST return a value that is not one of the values listed in the following table. The client MUST behave in one consistent, identical manner for all values that are not listed in the following table.
Return value/code Description
The hResource parameter does not represent a valid HRES_RPC context handle.
The resource represented by HRES_RPC is not in the ClusterResourceOnline state.
The server is not capable of participating in a quorum.
The class of the resource represented by HRES_RPC does not indicate that it is a shared storage device.
The resource represented by HRES_RPC has other resources dependent on it.
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 treat all values that are not listed in the preceding table the same, except as specified in section 22.214.171.124.