3.2.4.4 Completion of a SYNC_VOLUMES Message

The SYNC_VOLUMES message is composed of a TRKSVR_CALL_SYNC_VOLUMES structure, as described in section 2.2.12.3. That structure is composed of an array of TRKSVR_SYNC_VOLUME structures. Each TRKSVR_SYNC_VOLUME is termed a subrequest, and has a SyncType field that indicates the type of synchronization that the client requested. For example, a SyncType field of CREATE_VOLUME indicates that the client wants the server to create an entry in its ServerVolumeTable, and return a new VolumeID.

The hr field of the TRKSVR_SYNC_VOLUME structure indicates success or failure of the subrequest, as defined in section 2.2.14.

Unless otherwise specified, the client MUST ignore all fields of the TRKSVR_SYNC_VOLUME structure.

If the SYNC_VOLUMES message fails, or if the message succeeds but the hr field for a subrequest is TRK_E_SERVER_TOO_BUSY, and the message was sent as part of the VolumeInitializationTimer processing described in section 3.2.5.1, then the client MUST put the VolumeInitializationTimer into its retry state, as described in section 3.2.2.

If the SYNC_VOLUMES message succeeds but the cProcessed field of the TRKSVR_CALL_SYNC_VOLUMES structure is zero, the client MUST perform no further action.

If the SYNC_VOLUMES message succeeds, but the hr field for a subrequest does not succeed, then the client MUST ignore the fields of that subrequest, unless otherwise specified.

If the SYNC_VOLUMES message succeeds, the completion of each individual subrequest MUST be handled as specified in the following, corresponding sections.