ClusAPI Protocol servers SHOULD<120> fail this method by using error code ERROR_INVALID_FUNCTION (0x00000001).
The server fails this method by using error ERROR_INVALID_FUNCTION (0x00000001) if the resource designated by hResource does not contain a cluster shared volume (ResourceSharedVolumes MUST be TRUE).
The server fails this method by using error ERROR_RESOURCE_NOT_ONLINE (0x0000138C) if the resource designated by hResource is not currently online.
The client MUST provide a CLUS_CSV_MAINTENANCE_MODE_INFO (section 188.8.131.52) structure in the buffer that is designated by lpInBuffer. The VolumeName field MUST be set to a unique volume identifier as specified in section 184.108.40.206. The client SHOULD obtain the appropriate volume identifier by calling CLUSCTL_RESOURCE_STORAGE_GET_SHARED_VOLUME_INFO (section 220.127.116.11.1.48). The client sets the CLUS_CSV_MAINTENANCE_MODE_INFO InMaintenance field to TRUE to enable or FALSE to disable volume maintenance mode for the designated cluster shared volume. If the volume is already in cluster shared volume maintenance mode state requested by the client, the server MUST complete the method successfully. Otherwise, the server MUST transition the volume maintenance mode state as requested. How the server performs this transition is implementation-specific.
After successful completion of the method, the server SHOULD NOT write any data to the buffer that is designated by lpOutBuffer.
The server MUST accept a CLUSCTL_RESOURCE_SET_CSV_MAINTENANCE_MODE resource control code request only if it is in the read/write state, as specified in section 3.1.1.