3.1.4.3 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

Description

0x80070005

E_ACCESSDENIED

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

0x80070057

E_INVALIDARG

One or more arguments are invalid.

0x80042316

FSRVP_E_SHADOW_COPY_SET_IN_PROGRESS

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 3.1.1.2, 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.