6 Appendix A: Product Behavior

The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include updates to those products.

  • Microsoft Exchange Server 2003

  • Microsoft Exchange Server 2007

  • Microsoft Exchange Server 2010

  • Microsoft Exchange Server 2013

  • Microsoft Exchange Server 2016

  • Microsoft Office Outlook 2003

  • Microsoft Office Outlook 2007

  • Microsoft Outlook 2010

  • Microsoft Outlook 2013

  • Microsoft Outlook 2016

  • Microsoft Exchange Server 2019

  • Microsoft Outlook 2019

  • Microsoft Outlook 2021

  • Microsoft Outlook LTSC 2024

Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base (KB) number appears with a product name, the behavior changed in that update. The new behavior also applies to subsequent updates unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.

Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription.

<1> Section 2.1:  Exchange 2003, Exchange 2007, Exchange 2010, the initial release of Exchange 2013, Office Outlook 2003, Office Outlook 2007, Outlook 2010, and the initial release of Outlook 2013 do not support the Execute request type. The Execute request type was introduced in Microsoft Outlook 2013 Service Pack 1 (SP1) and Microsoft Exchange Server 2013 Service Pack 1 (SP1).

<2> Section 2.2.1:  Exchange 2003, Exchange 2007, Exchange 2010, the initial release of Exchange 2013, Office Outlook 2003, Office Outlook 2007, Outlook 2010, and the initial release of Outlook 2013 do not support the Execute request type. The Execute request type was introduced in Outlook 2013 SP1 and Exchange 2013 SP1.

<3> Section 2.2.2:  Exchange 2003 and Exchange 2007 behavior is undefined when they encounter a reserved value in a RopId field.

<4> Section 2.2.2:  Exchange 2003, Exchange 2007, Exchange 2010, the initial release of Exchange 2013, Office Outlook 2003, Office Outlook 2007, Outlook 2010, and the initial release of Outlook 2013 do not support the Execute request type. The Execute request type was introduced in Outlook 2013 SP1 and Exchange 2013 SP1.

<5> Section 2.2.3.1.3: Exchange 2007 does not set the PerUserGuid field to an empty GUID.

<6> Section 2.2.7.9: Outlook 2010 does not use the RopOptionsData ROP (section 2.2.7.9).

<7> Section 2.2.7.9.2: Exchange 2003, Exchange 2007, and Exchange 2010 do not return an empty array in the OptionsInfo field.

<8> Section 2.2.7.9.3: Exchange 2007 sets the ReturnValue field for the RopOptionsData ROP response (section 2.2.7.9) to 0x00000000 regardless of the failure of the ROP.

<9> Section 2.2.9.2.1: Exchange 2003 limits the stream size to 32 kilobytes. Therefore, if the value of the ByteCount field in the RopReadStream ROP request buffer (section 2.2.9.2) is greater than 0x8000, the server returns the RopBufferTooSmall ROP (section 2.2.15.1). The MaximumByteCount field is never present in the request buffer because the ByteCount field is never set to 0xBABE.

<10> Section 2.2.9.7.1: Exchange 2003 and Exchange 2007 do not use a configuration setting and limit the maximum size of the stream to 231 bytes.

<11> Section 2.2.9.9.3: Exchange 2003 and Exchange 2007 do not set the field to 0x0000000000000000, but the nonzero value has no meaning.

<12> Section 2.2.9.9.3: Exchange 2003 and Exchange 2007 do not set the field to 0x0000000000000000, but the nonzero value has no meaning.

<13> Section 3.1.4.2:  Exchange 2003, Exchange 2007, Exchange 2010, the initial release of Exchange 2013, Office Outlook 2003, Office Outlook 2007, Outlook 2010, and the initial release of Outlook 2013 do not support the Connect request type. The Connect request type was introduced in Outlook 2013 SP1 and Exchange 2013 SP1.

<14> Section 3.1.5.1.2: In Update Rollup 3 for Exchange Server 2010 Service Pack 2 (SP2), if the first ROP in the RPC buffer creates a response that exceeds the maximum ROP buffer size and there are no additional ROPs in the RPC buffer, then the server returns the ecBufferTooSmall error to fail the ROP instead of returning the RopBufferTooSmall ROP (section 2.2.15.1). Failing the ROP when it satisfies these conditions indicates to the client that there is no client action possible to make that ROP response fit in the ROP buffer.

<15> Section 3.1.5.1.2:  Exchange 2003, Exchange 2007, Exchange 2010, the initial release of Exchange 2013, Office Outlook 2003, Office Outlook 2007, Outlook 2010, and the initial release of Outlook 2013 do not support the Execute request type. The Execute request type was introduced in Outlook 2013 SP1 and Exchange 2013 SP1.

<16> Section 3.1.5.1.3: Exchange 2003 and Exchange 2007 include a RopPending ROP response (section 2.2.14.3) even though the ROP output buffer contains all queued RopNotify ROP responses (section 2.2.14.2).

<17> Section 3.1.5.4:  Exchange 2003, Exchange 2007, Exchange 2010, the initial release of Exchange 2013, Office Outlook 2003, Office Outlook 2007, Outlook 2010, and the initial release of Outlook 2013 do not support the Connect request type. The Connect request type was introduced in Outlook 2013 SP1 and Exchange 2013 SP1.

<18> Section 3.2.3:  Exchange 2003, Exchange 2007, Exchange 2010, the initial release of Exchange 2013, Office Outlook 2003, Office Outlook 2007, Outlook 2010, and the initial release of Outlook 2013 do not support the Connect request type. The Connect request type was introduced in Outlook 2013 SP1 and Exchange 2013 SP1.

<19> Section 3.2.4.1:  Exchange 2003 and Exchange 2007 include a RopPending ROP response (section 2.2.14.3) even though all queued RopNotify ROP responses (section 2.2.14.2) fit in the ROP output buffer.

<20> Section 3.2.4.2:  Exchange 2003, Exchange 2007, Exchange 2010, the initial release of Exchange 2013, Office Outlook 2003, Office Outlook 2007, Outlook 2010, and the initial release of Outlook 2013 do not support the Execute request type. The Execute request type was introduced in Outlook 2013 SP1 and Exchange 2013 SP1.

<21> Section 3.2.4.3:  Exchange 2003, Exchange 2007, Exchange 2010, the initial release of Exchange 2013, Office Outlook 2003, Office Outlook 2007, Outlook 2010, and the initial release of Outlook 2013 do not support the Execute request type. The Execute request type was introduced in Outlook 2013 SP1 and Exchange 2013 SP1.

<22> Section 3.2.4.3: Exchange 2003 and Exchange 2007 do not fail the EcDoRpcExt2 RPC and instead fail the individual ROP with the ReturnValue field of the ROP response buffer set to 0x0000047D.

<23> Section 3.2.5.1: For some ROPs, Exchange 2003 and Exchange 2007 use different methods to resolve the Server object and, therefore, do not fail the ROP if the index is invalid.

<24> Section 3.2.5.1: Exchange 2003 and Exchange 2007 fail the RPC.

<25> Section 3.2.5.3: In Exchange 2010, in instances where multiple ROPs are being processed in one RPC and the RopRelease ROP is the last ROP in the call, the RopRelease ROP (section 2.2.15.3) replaces the handle of the released Server object handle table entry with a value that is considered invalid by both server and client and is not 0xFFFFFFFF. This invalid handle value is then returned as the Server object handle in the ROP responses for the other ROPs in the RPC.