StartShadowCopySet (Opnum 2)

The StartShadowCopySet method is called by the client to initiate a new shadow copy set for shadow copy creation.<6>

 DWORD StartShadowCopySet(
         [in] handle_t hBinding,
         [in] GUID ClientShadowCopySetId,
         [out] GUID* pShadowCopySetId);

hBinding:  An RPC binding handle (as defined in [C706]).

ClientShadowCopySetId: The GUID assigned by the client for the shadow copy set.<7>

pShadowCopySetId: The GUID of the shadow copy set, assigned by the server.

Return Values: The method returns one of the values specified in section 2.2.4. The most common error codes are listed in the following table:

Return value/code




The caller does not have the permissions to perform the operation.



One or more arguments are invalid.



StartShadowCopySet (Opnum 2) was called while the creation of another shadow copy set was in progress.

If ContextSet is FALSE, the server MUST fail the call with FSRVP_E_BAD_STATE.

If there is a ShadowCopySet in the GlobalShadowCopySetTable where ShadowCopySet.Status is not equal to "Recovered", the server MUST fail the call with FSRVP_E_SHADOW_COPY_SET_IN_PROGRESS.

The server MUST stop the Message Sequence Timer specified in section 3.1.2.

The server MUST create a new ShadowCopySet, as specified in section, with the following values, and insert it into GlobalShadowCopySetTable:

  • ShadowCopySetId is set to a unique GUID generated by the server.

  • Status is set to "Started".

  • Context is set to CurrentContext.

  • ShadowCopyList is set to an empty list.

The server MUST set pShadowCopySetId to ShadowCopySetId, start the Message Sequence Timer specified in section 3.1.2 with a timeout value of 180 seconds, and return ZERO to the caller.