The CLUSCTL_RESOURCE_UPGRADE_DLL resource control code SHOULD<166> replace the server implementation-specific object that controls resource operation and health monitoring without stopping the cluster service on the node where the ApiResourceControl was issued.

The client MUST provide the location of the object on the server in the buffer that is designated by lpInBuffer. The client SHOULD specify a file path to the object that specifies a disk on the designated node.

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_UPGRADE_DLL resource control code request if its protocol server state is in the read/write state, as specified in section 3.1.1.

The server MUST return ERROR_INVALID_PARAMETER (0x00000057) if the final component of the path name in the input buffer differs from the final component of the path name that was specified for lpszDllName in ApiCreateResourceType ( when the resource type was created. For example, if lpszDllName was "D:\dir1\dir2\object.dll", then the input buffer could be "D:\upgrade\object.dll" but it could not be "D:\upgrade\objectv2.dll".