2.2.3 ROPs

FastTransfer and ICS operations are performed by sending a specific set of ROP requests to the server.

If a ROP name starts with RopSynchronization, it can only be used in ICS operations.

If a ROP name starts with RopFastTransfer, it can be used in FastTransfer operations, and can also be used ICS operations. For more details, see the following table and the ROP details provided in section 2.2.3.1 and section 2.2.3.2.

All FastTransfer and ICS operations can be separated into similar steps:

  1. Initialization: Configure an operation and assign it a context, which is used to identify this operation in all subsequent steps.

  2. Data transmission: Transmit the messaging object data based on the context configuration.

  3. Checkpointing: An optional step in which data that is required for initialization of the next iteration of this operation is downloaded. For more details about checkpointing, see section 3.3.5.6.

  4. Release of resources held on a server: Release the context by using the RopRelease ROP ([MS-OXCROPS] section 2.2.15.3).

Note that the context in step 1 is not a messaging object, which means that it is not persisted in a mailbox and its lifetime is limited to the lifetime of the handle that is opened for it.

The following table describes the applicability of ROPs for each step of every FastTransfer or ICS operation. See the ROP details in section 2.2.3.1 and section 2.2.3.2 for usage directions.

Operation

Initialization

Data transmission

Checkpointing

FastTransfer download

RopFastTransferSourceCopyTo ROP (section 2.2.3.1.1.1)

RopFastTransferSourceCopyProperties ROP (section 2.2.3.1.1.2)

RopFastTransferSourceCopyMessages ROP (section 2.2.3.1.1.3)

RopFastTransferSourceCopyFolder ROP (section 2.2.3.1.1.4)

RopTellVersion ROP (section 2.2.3.1.1.6)

RopFastTransferSourceGetBuffer ROP (section 2.2.3.1.1.5)

Mailbox data is encoded into a FastTransfer stream.

Not applicable.

FastTransfer upload

RopFastTransferDestinationConfigure ROP (section 2.2.3.1.2.1)

RopTellVersion ROP (section 2.2.3.1.1.6)

RopFastTransferDestinationPutBuffer ROP (section 2.2.3.1.2.2)

Mailbox data is encoded into a FastTransfer stream.

Not applicable.

ICS download

RopSynchronizationConfigure ROP (section 2.2.3.2.1.1)

RopSynchronizationUploadStateStreamBegin ROP (section 2.2.3.2.2.1)

RopSynchronizationUploadStateStreamContinue ROP (section 2.2.3.2.2.2)

RopSynchronizationUploadStateStreamEnd ROP (section 2.2.3.2.2.3)

RopFastTransferSourceGetBuffer ROP (section 2.2.3.1.1.5)

Mailbox data is encoded into a FastTransfer stream.

RopSynchronizationGetTransferState ([MS-OXCROPS] section 2.2.13.8) and the RopFastTransferSourceGetBuffer ([MS-OXCROPS] section 2.2.12.4) ROPs MAY<2> be used

ICS upload

RopSynchronizationOpenCollector ROP (section 2.2.3.2.4.1)

RopSynchronizationUploadStateStreamBegin ROP (section 2.2.3.2.2.1)

RopSynchronizationUploadStateStreamContinue ROP (section 2.2.3.2.2.2)

RopSynchronizationUploadStateStreamEnd ROP (section 2.2.3.2.2.3)

RopSynchronizationImportMessageChange ROP (section 2.2.3.2.4.2)

RopSynchronizationImportHierarchyChange ROP (section 2.2.3.2.4.3)

RopSynchronizationImportMessageMove ROP (section 2.2.3.2.4.4)

RopSynchronizationImportDeletes ROP (section 2.2.3.2.4.5)

RopSynchronizationImportReadStateChanges ROP (section 2.2.3.2.4.6)

ROPs that operate on a Message object.

RopSynchronizationGetTransferState ROP (section 2.2.3.2.3.1)

RopFastTransferSourceGetBuffer ROP (section 2.2.3.1.1.5)

Whenever the applicability of a ROP or protocol details are discussed in this specification, operations to which an explanation applies are usually referenced by mentioning the type of the context, as specified in the following table.

Context type

Operations it applies to

Download context

FastTransfer download, ICS download

FastTransfer context

FastTransfer download, FastTransfer upload

FastTransfer download context

FastTransfer download

FastTransfer upload context

FastTransfer upload

Synchronization context

ICS download, ICS upload

Synchronization download context

ICS download

Synchronization upload context

ICS upload

For details about the relationship between the InputHandleIndex fields defined in this specification and the InputServerObject fields defined in the Remote Operation (ROP) List and Encoding Protocol, see [MS-OXCROPS] section 3.2.5.1. For details about the relationship between the OutputHandleIndex fields defined in this specification and the OutputServerObject fields defined in the ROP List and Encoding Protocol, see [MS-OXCROPS] section 3.2.5.2.

Common values for the ReturnValue field are included in ROP responses are specified in [MS-OXCDATA] section 2.4.