3.8.4.1 CleanUpEvictedNode (Opnum 3)

The CleanUpEvictedNode method removes all persistent artifacts that exist on the server after it is evicted from a cluster.

This method is idempotent. After it is invoked, the target server can no longer be a server for the Failover Cluster: Cluster Management Remote Protocol (ClusAPI) ([MS-CMRP]) until the server is reconfigured as a member of a cluster by using implementation-specific methods between servers.

 HRESULT CleanUpEvictedNode(
   [in] unsigned long DelayBeforeCleanup,
   [in] unsigned long TimeOut,
   [in] unsigned long Flags
 );

DelayBeforeCleanup: The number of milliseconds that the server MUST delay before cleanup is started on the target server. If this value is zero, the server is cleaned up immediately.

TimeOut: The number of milliseconds that the server MUST wait for cleanup to complete. This time-out is independent of the preceding delay; therefore, if DelayBeforeCleanup is greater than TimeOut, this method will time out. However, after cleanup is initiated, cleanup will run to completion regardless of the method waiting.

Flags: A set of bit flags specifying the requested actions to be taken during cleanup. This parameter MUST be set to at least one of the following values.

Value

Meaning

CLUSTERCLEANUP_STOP_CLUSTER_SERVICE

0x00000000

Issue a stop command to the cluster service and wait for it to stop.

CLUSTERCLEANUP_DONT_STOP_CLUSTER_SERVICE

0x00000001

Do not issue a stop command to the cluster service.

CLUSTERCLEANUP_DONT_WAIT_CLUSTER_SERVICE_STOP

0x00000002

Do not wait for the cluster service to stop.

Return Values: A signed 32-bit value that indicates return status. If the method returns a negative value, it has failed. Zero or positive values indicate success, with the lower 16 bits in positive nonzero values containing warnings or flags defined in the method implementation. For more information about Win32 error codes and HRESULT values, see [MS-ERREF] sections 2.2 and 2.1.

Return value/code

Description

0x00000000

S_OK

The call was successful.

0x80070102

WAIT_TIMEOUT

The Cleanup Timer (section 3.8.2.2) expired before cleanup was completed.

For any other condition, this method MUST return 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 in the preceding table.

Exceptions Thrown: No exceptions are thrown beyond those thrown by the underlying RPC protocol [MS-RPCE].

The opnum field value for this method is 3.

When processing this call the server MUST do the following:

  • Initialize the Cleanup Timer to the value specified in the Timeout parameter.

  • Initialize the Delay Cleanup Timer (section 3.8.2.1) to the value specified in the DelayBeforeCleanup parameter.

  • Wait for the Delay Cleanup Timer to expire.

  • Remove all artifacts on the server that make it part of a cluster.

  • At any time during execution of the previous steps, if the Cleanup Timer expires, the server MUST complete the method, even though cleanup operations continue.