Protocol version 2.0 servers SHOULD fail this method by using error code ERROR_INVALID_FUNCTION (0x00000001).
Protocol version 3.0 servers SHOULD<132> support this control code.
The server MUST fail 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 MUST fail 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 volume unique identifier in the buffer that is designated by lpInBuffer, in the same manner as specified for the VolumeName of the CLUS_CSV_MAINTENANCE_MODE_INFO structure in section 220.127.116.11. The client SHOULD obtain the appropriate volume identifier by calling CLUSCTL_RESOURCE_STORAGE_GET_SHARED_VOLUME_INFO (section 18.104.22.168.1.48).
The server MUST fail this method by using error ERROR_CLUSTER_INVALID_REQUEST (0x000013B8) if the designated cluster shared volume is in volume maintenance mode.
The server MUST fail this method by using error ERROR_CLUSTER_BACKUP_IN_PROGRESS (0x0000173D) if the designated cluster shared volume is in backup mode.
If the designated cluster shared volume is in redirected mode, the server MUST transition the cluster shared volume out of redirected mode. How the server performs this transition is implementation-specific. Irrespective of the invocation of this method, the server SHOULD transition cluster shared volumes into redirected mode in order to handle errors and other unexpected conditions. The policies driving these transitions are implementation-specific.
If the server successfully transitions the cluster shared volume out of redirected mode, or if the cluster shared volume was already not in redirected mode, and if the client designates a non-empty output buffer with lpOutBuffer, then the server MUST write the volume name of the designated cluster shared volume into the lpOutBuffer. The volume name is as specified for the szVolumeName field of the CLUS_CSV_VOLUME_INFO (section 22.214.171.124). If lpOutBuffer is too small to accommodate the volume name, then the server MUST return ERROR_MORE_DATA, though the server MUST not undo any redirected mode transition it performed in handling this method.
The server MUST accept a CLUSCTL_RESOURCE_ENABLE_SHARED_VOLUME_DIRECTIO resource control code request only if it is in the read/write state, as specified in section 3.1.1.