3.2.5.5 Generating the PidTagSourceKey Value

When requested by the client, the server MUST output the PidTagSourceKey property (section 2.2.1.2.5) value if it is persisted, or generate it if it is missing. If the value of the PidTagSourceKey property is missing, the server MUST generate it by producing a GID structure ([MS-OXCDATA] section 2.2.1.3) from the internal identifier (Message ID structure ([MS-OXCDATA] section 2.2.1.2) or Folder ID structure ([MS-OXCDATA] section 2.2.1.1)) of the object by using the same mapping algorithm as described for the RopLongTermIdFromId ROP ([MS-OXCROPS] section 2.2.3.8).

The only exception is when a server is required to generate this property for a folder, which is a root of the current hierarchy synchronization download operation (that is, it is the folder that was passed to the RopSynchronizationConfigure ROP (section 2.2.3.2.1.1)). In this case, the PidTagSourceKey property MUST be output as a zero-length PtypBinary, as specified in [MS-OXCDATA] section 2.11.1.