3.3.4.14 RdcGetFileData Completes

This method uses the Remote Differential Compression Algorithm (as specified in [MS-RDC]) when replicating a changed file. The data stream returned by the RdcGetFileData method is composed of ranges from the marshaled source file.

Upon successful completion, the client has successfully received file data as specified by previous calls to the RdcPushSourceNeeds method.

Actions Triggered: The data stream is broken into blocks of compressed and uncompressed data. To receive all the source data requested by the RdcPushSourceNeeds method call, a client MUST call the RdcGetFileData method, possibly repeatedly, until the server returns zero as the value of the RdcGetFileData method’s sizeReturned output parameter.

Sequencing: This method is used after a server context is established via the InitializeFileTransferAsync method and after the set of source needs for this file has been sent to the server via the RdcPushSourceNeeds method.

Error Handling: The following table summarizes the set of errors returned by the RdcGetFileData method that cause a client to behave in specific ways.

Error code

Client response

0x00000000

ERROR_SUCCESS

The client MUST perform the actions listed under the Actions Triggered heading.

0x00002344

FRS_ERROR_CONTENTSET_NOT_FOUND

The client MUST remain in the Polling connection state (as specified in section 3.3.1.1) and enter the Restart replicated folder session state (as specified in section 3.3.1.2).

0x00002358

FRS_ERROR_XPRESS_INVALID_DATA

The client MUST retry the download, setting the stagingPolicy parameter to RESTAGING_REQUIRED.

0x000006A4 – 0x00000788

RPC errors

The client MUST transition to the Disconnected connection state. The client SHOULD try to re-establish the connection by calling the EstablishConnection method after a time-out interval of its choice.

Any other non-zero error code

The client MUST retry the download.