7 Appendix B: 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 Exchange Server 2019

  • Microsoft Office Outlook 2003

  • Microsoft Office Outlook 2007

  • Microsoft Outlook 2010

  • Microsoft Outlook 2013

  • Microsoft Outlook 2016

  • Microsoft Outlook 2019

  • Microsoft Outlook 2021

  • Microsoft Outlook 2024 Preview

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:  The following tables indicate which product versions support a given protocol sequence.

Protocol sequence

Exchange 2003

Exchange 2007

Exchange 2010

Exchange 2013

Exchange 2016

Exchange 2019

ncacn_ip_tcp

X

X

X

ncacn_http

X

X

X

X

X

X

 

Protocol sequence

Office Outlook 2003

Office Outlook 2007

Outlook 2010

Outlook 2013

Outlook 2016

Outlook 2019

ncacn_ip_tcp

X

X

X

X

X

X

ncacn_http

X

X

X

X

X

X

<2> Section 2.2.2.2: Exchange 2003, Exchange 2007, and Exchange 2010 do not return the AUX_ENDPOINT_CAPABILITIES auxiliary block structure. Office Outlook 2003, the initial release version of Office Outlook 2007, Microsoft Office Outlook 2007 Service Pack 1, Microsoft Office Outlook 2007 Service Pack 2 (SP2), and the initial release version of Microsoft Outlook 2010 ignore the AUX_ENDPOINT_CAPABILITIES auxiliary block structure. Microsoft Outlook 2010 Service Pack 1 (SP1), Outlook 2013, Outlook 2016, and Outlook 2019 support the AUX_ENDPOINT_CAPABILITIES auxiliary block structure.

<3> Section 2.2.2.2.17: Exchange 2003, Exchange 2007, and Exchange 2010 do not set this flag. Office Outlook 2003, Office Outlook 2007, and Outlook 2010 ignore this flag.

<4> Section 2.2.2.2.20: Exchange 2003, Exchange 2007, and Exchange 2010 do not support combined RFRI, NSPI, and EMSMDB interfaces on the same connection.

<5> Section 3.1.3:                            The following tables indicate which product versions support each authentication method.

Authentication method

Exchange 2003 and Office Outlook 2003

Exchange 2007 and Office Outlook 2007

Exchange 2010 and Outlook 2010

Exchange 2013 and Outlook 2013

Exchange 2016 and Outlook 2016

Exchange 2019 and Outlook 2019

RPC_C_AUTHN_WINNT

X

X

X

X

X

X

RPC_C_AUTHN_GSS_KERBEROS

X

X

X

RPC_C_AUTHN_GSS_NEGOTIATE

X

X

X

X

X

X

RPC_C_AUTHN_NONE

X

X

X

<6> Section 3.1.3: Exchange 2003, Exchange 2007, Exchange 2010, Office Outlook 2003, Office Outlook 2007, and Outlook 2010 use "exchangeMDB/<Mailbox server FQDN>" as the service principal name (SPN) for the Kerberos authentication method.

<7> Section 3.1.4: The following table indicates which EMSMDB methods are supported in which product versions.

Method

Exchange 2003

Exchange 2007

Exchange 2010

Exchange 2013

Exchange 2016

Exchange 2019

EcDoDisconnect

X

X

X

X

X

X

EcRRegisterPushNotification

X

X

See section 3.1.4.5.

EcDummyRpc

X

X

X

X

X

X

EcDoConnectEx

X

X

X

X

X

X

EcDoRpcExt2

X

X

X

X

X

X

EcDoAsyncConnectEx

X

X

X

X

X

<8> Section 3.1.4.1: Exchange 2010, Exchange 2013, Exchange 2016, and Exchange 2019 do not support Session Context linking. If the value of the ulIcxrLink parameter is not 0xFFFFFFFF, the server will not attempt to search for a session with the same Session Context and link to them. It will then return the same value in the pulTimeStamp parameter that was passed in.

<9> Section 3.1.4.1: In Exchange 2003 and the initial release version of Exchange 2007, the server counts individual connections for CAL accounting, so Session Context linking is useful in a call to the EcDoConnectEx method on the EMSMDB interface.

<10> Section 3.1.4.1: Exchange 2010, Exchange 2013, Exchange 2016, and Exchange 2019 do not support Session Context linking.

<11> Section 3.1.4.1: Exchange 2010, Exchange 2013, Exchange 2016, and Exchange 2019 do not support Session Context linking. If the ulIcxrLink parameter is not 0xFFFFFFFF, the server will not attempt to search for a session with the same Session Context and link to it. Rather, it will then return the same value in the pulTimeStamp parameter that was passed in.

<12> Section 3.1.4.1: Exchange 2007 does not fail when the value of the cbAuxIn parameter on input is larger than 0x00001008.

<13> Section 3.1.4.1: If the cbAuxIn parameter is greater than 0x00000000 and less than 0x00000008, Exchange 2007 does not fail, the initial release version of Exchange 2010 will fail with ecInvalidParam (0x80070057).

<14> Section 3.1.4.1: Exchange 2003 and Exchange 2007 return ecRpcAuthentication (0x000004B6) if the authentication context associated with the binding handle does not have enough privilege and if the szUserDn parameter is not empty. If the szUserDN parameter is empty, Exchange 2003 and Exchange 2007 return ecNone (0x00000000).

<15> Section 3.1.4.1.2.1: Exchange 2010, Exchange 2013, Exchange 2016, and Exchange 2019 do not support sending the AUX_OSVERSIONINFO auxiliary block.

<16> Section 3.1.4.1.2.1: Exchange 2003 and Office Outlook 2003 do not support the AUX_SERVER_SESSION_INFO auxiliary block.

<17> Section 3.1.4.2: Exchange 2010 returns the same value on output as was input, not 0x00000000.

<18> Section 3.1.4.2: Exchange 2003, Exchange 2007 and Exchange 2010 will fail with error code ecRpcFormat (0x000004B6) if the request buffer is larger than 0x00008007 bytes in size. Microsoft Exchange Server 2010 Service Pack 2 (SP2), Microsoft Exchange Server 2013 Service Pack 1 (SP1), and Exchange 2016 will fail with error code ecRpcFailed (0x80040115) if the request buffer is larger than 0x00008007 bytes in size.

<19> Section 3.1.4.2: Exchange 2003, Exchange 2007, and Microsoft Exchange Server 2010 Service Pack 1 (SP1) fail with error code ecRpcFormat (0x000004B6) if the value in the cbIn parameter is less than 0x00000008. The initial release version of Exchange 2010 will not allow a cbIn parameter value smaller than 0x00000008.

<20> Section 3.1.4.2: Exchange 2003 and Exchange 2007 will fail with ecRpcFormat (0x000004B6) if the output buffer is less than 0x00008007. Exchange 2013 and Exchange 2016 will succeed if output buffer is less than 0x00000008, but no request ROPs will have been processed.

<21> Section 3.1.4.2: Exchange 2007 does not fail if the request buffer value of the cbAuxIn parameter is larger than 0x00001008 bytes in size.

<22> Section 3.1.4.2: Exchange 2010 will fail with ecRpcFailed (0x80040115) if the value of the cbAuxIn parameter is greater than 0x00000000 and less than 0x00000008.

<23> Section 3.1.4.2: Exchange 2003, Exchange 2007, Exchange 2013, and Exchange 2016 support returning data in the rgbAuxOut parameter.

<24> Section 3.1.4.2.2.1: Exchange 2003, Exchange 2007, Exchange 2013, and Exchange 2016 support returning data in the rgbAuxOut parameter.

<25> Section 3.1.4.4: Exchange 2010, Exchange 2013, and Exchange 2016 do not return the ecRejected error code.

<26> Section 3.1.4.5: Exchange 2003 and Exchange 2007 do support the EcRRegisterPushNotification method. The initial release version of Exchange 2010 and Exchange 2010 SP1 do not support the EcRRegisterPushNotification method and return ecNotSupported. Exchange 2010 SP2 supports the EcRRegisterPushNotification method when a registry key is created to support push notifications, as described in [MSFT-ConfigStaticUDPPort]. Microsoft Exchange Server 2010 Service Pack 3 (SP3), Exchange 2013, and Exchange 2016 do not support the EcRRegisterPushNotification method and return ecNotSupported.

<27> Section 3.2.4: The following table indicates which EMSMDB interface methods are used by a client when accessing a server that is running Exchange 2003.

Method

Office Outlook 2003

Office Outlook 2007

Outlook 2010

Outlook 2013

Outlook 2016

Outlook 2019

EcDoDisconnect

X

X

X

X

X

X

EcRRegisterPushNotification

X

X

X

EcDummyRpc

EcDoConnectEx

X

X

X

X

X

X

EcDoRpcExt2

X

X

X

X

X

X

EcDoAsyncConnectEx

The following table indicates which EMSMDB interface methods are used by a client when it is accessing a server that is running Exchange 2007.

Method

Office Outlook 2003

Office Outlook 2007

Outlook 2010

Outlook 2013

Outlook 2016

Outlook 2019

EcDoDisconnect

X

X

X

X

X

X

EcRRegisterPushNotification

X

X

X

EcDummyRpc

EcDoConnectEx

X

X

X

X

X

X

EcDoRpcExt2

X

X

X

X

X

X

EcDoAsyncConnectEx

X

X

X

X

X

The following table indicates which EMSMDB interface methods are used by a client when it is accessing a server that is running Exchange 2010.

Method

Office Outlook 2003

Office Outlook 2007

Outlook 2010

Outlook 2013

Outlook 2016

Outlook 2019

EcDoDisconnect

X

X

X

X

X

X

EcRRegisterPushNotification

See section 3.1.4.5.

EcDummyRpc

EcDoConnectEx

X

X

X

X

X

X

EcDoRpcExt2

X

X

X

X

X

X

EcDoAsyncConnectEx

X

X

X

X

X

The following table indicates which EMSMDB interface methods are used by a client when it is accessing a server that is running Exchange 2013, Exchange 2016, or Exchange 2019.

Method

Office Outlook 2003

Office Outlook 2007

Outlook 2010

Outlook 2013

Outlook 2016

Outlook 2019

EcDoDisconnect

X

X

X

X

X

X

EcRRegisterPushNotification

See section 3.1.4.5.

EcDummyRpc

EcDoConnectEx

X

X

X

X

X

X

EcDoRpcExt2

X

X

X

X

X

X

EcDoAsyncConnectEx

X

X

X

X

X

<28> Section 3.2.4.1: Exchange 2010, Exchange 2013, and Exchange 2016 not support Session Context linking.

<29> Section 3.2.4.1: In Exchange 2003 and the initial release version of Exchange 2007, the server counts individual connections for CAL accounting, so Session Context linking is useful in the EcDoConnectEx method on the EMSMDB interface.

<30> Section 3.2.4.1: Exchange 2010, Exchange 2013, and Exchange 2016 do not support Session Context linking.

<31> Section 3.2.4.1: Exchange 2010, Exchange 2013, and Exchange 2016 do not support Session Context linking.

<32> Section 3.2.4.1.2.1: Outlook 2010 by default does not populate the MachineName, UserName, ClientIP, and MacAddress fields within the AUX_PERF_CLIENTINFO auxiliary block structure.

<33> Section 3.2.4.1.2.1: Exchange 2003 and Office Outlook 2003 do not support the AUX_CLIENT_CONNECTION_INFO auxiliary block structure.

<34> Section 3.2.4.6: Office Outlook 2003, the initial release version of Office Outlook 2007, Office Outlook 2007 SP1, Office Outlook 2007 SP2, and Outlook 2010 do not support port consolidation. Microsoft Office Outlook 2007 Service Pack 3 (SP3) supports port consolidation. Clients that do not support port consolidation ignore the AUX_ENDPOINT_CAPABILITIES auxiliary block structure, as described in section 2.2.2.2.20. Office Outlook 2007 SP3, Outlook 2013, and Outlook 2016 support port consolidation.

<35> Section 3.3.4: The following table indicates which AsyncEMSMDB interface methods are supported in which product versions.

Method

Exchange 2003

Exchange 2007

Exchange 2010

Exchange 2013

Exchange 2016

Exchange 2019

EcDoAsyncWaitEx

X

X

X

X

X

<36> Section 3.3.4.1: Exchange 2003 and Exchange 2007 complete the call every 5 minutes regardless of the client's last activity time.

<37> Section 3.3.4.1: Exchange 2007 and Exchange 2010 also reject the request if the asynchronous context handle is not valid.

<38> Section 3.4.4: The AsyncEMSMDB interface methods are not used by a client when accessing a server that is running Exchange 2003. The following table indicates which AsyncEMSMDB interface methods are used by a client when accessing a server that is running Exchange 2007, Exchange 2010, Exchange 2013, Exchange 2016, or Exchange 2019.

Method

Office Outlook 2003

Office Outlook 2007

Outlook 2010

Outlook 2013

Outlook 2016

Outlook 2019

EcDoAsyncWaitEx

X

X

X

X

X