3.2.4.2.1 Starting a Shadow Copy Set

The client MUST call the RPC IsPathSupported method, with ShareName set to the ShareName supplied by the caller. If the server returns FALSE in the SupportedByThisProvider parameter, the client MUST return an implementation-defined error to the caller.

The client MUST close the existing RPC connection to the server and MUST establish a new RPC connection to the server using the OwnerMachineName returned by the server in the previous step.

The client MUST call the RPC GetSupportedVersion method. If the MinVersion returned by the server is greater than ClientVersion, the client MUST return an implementation-defined error to the caller. The client MUST choose the highest value between MinVersion and MaxVersion that is equal to or less than ClientVersion as the protocol version to be used.

The client MUST call the RPC SetContext method, with Context set by the caller-supplied Context value. If the server returns an error, the client MUST return the same error code to the caller. If the server returns ZERO, the client MUST set CurrentContext to the context value supplied by the caller.

The client MUST call an RPC StartShadowCopySet message, with ClientShadowCopySetId set to the caller-supplied ShadowCopySetId. If the server returns an error, the client MUST return the same error code to the caller. If the server returns ZERO, the client MUST create a new ShadowCopySet, as specified in section 3.2.1.2, with the following values, and insert it into GlobalShadowCopySetTable.

  • ShadowCopySetId is set to the caller-supplied ShadowCopySetId.

  • ServerShadowCopySetId is set to the ShadowCopySetId returned by the server.

  • ServerName is set to the server name identified from the caller-supplied ShareName.

  • Status is set to "Started".

  • Context is set to CurrentContext.

  • ShadowCopyList is set to an empty list.

  • PathFormat is set to either "Hostname" or "FQDN" based on a local configuration policy.<15>