3.2.5.9 Receiving a RopIdFromLongTermId ROP Request

If the LongTermId field of the request contains zeros for the replica GUID (REPLGUID) component, the server SHOULD<44> fail the operation with 0x80070057 (ecInvalidParam) in the ReturnValue field. If the LongTermId field of the request contains zeros for the global counter  component, the server MUST fail the operation with 0 in the ReturnValue field.

The server searches the REPLID and REPLGUID to-and-from mapping table for the REPLGUID portion of the LongTermID, as specified in [MS-OXCDATA] section 2.2.1.3.1. The server does not attempt to confirm that the LongTermID is a change number for an existing or former object, is an identifier for an existing or former object, or has ever been assigned for any reason.

If the REPLGUID is not found, the server adds a new entry consisting of the REPLGUID portion of the LongTermID and a newly assigned replica ID (REPLID). The new REPLID MUST be unique in the REPLID and REPLGUID to-and-from mapping table. If the maximum number of REPLIDs have already been registered, the server cannot register a new REPLID. In this case, the server MUST fail the operation with 0x00000450 (ecParameterOverflow) in the ReturnValue field.

The server MUST map the same REPLGUID to the same REPLID every time it is queried. Other servers can map a particular REPLGUID to a different REPLID, but each server MUST map any particular REPLGUID to the same REPLID every time it is queried.

The server ignores the content of the padding bytes in the LongTermID.

After obtaining the REPLID from the REPLID and REPLGUID to-and-from mapping table, the server uses the REPLID to construct the 64-bit Folder ID or Message ID, as specified in [MS-OXCDATA] sections 2.2.1.1 or 2.2.1.2, which is returned in the ObjectId field. The Folder ID or Message ID consists of the 16-bit REPLID followed by the 48-bit global counter portion of the given LongTermID.

The following error codes are specific to this ROP. Other possible error codes are specified in [MS-OXCDATA] section 2.4.

Name

Value

Meaning

ecNone

0x00000000

Success.

ecInvalidParam

0x80070057

The LongTermId field of the request contained zeros for either the replica GUID (REPLGUID) component.

ecParameterOverflow

0x00000450

The number of replica IDs registered is at the maximum. (The maximum is 32,768, but the implementation can impose a lower limit.)