3.2.4.1.2 Auxiliary Buffer

The EcDoConnectEx method, as specified in section 3.1.4.1, allows for additional data to travel between the client and server. This additional data is transferred in the auxiliary buffers of the method. The rgbAuxIn parameter is for auxiliary data being sent from the client to the server.

Unlike the ROP request and ROP response payloads in the rgbIn and rgbOut parameters, there is no request and response nature to the auxiliary buffers. The data sent to the server from the client in the auxiliary input buffer is purely informational, and the server is not required to respond in the auxiliary output buffer.

The data being transferred in the auxiliary buffers from the client to the server is client-side performance information, which is statistical information that the client can keep regarding its communication with the messaging server or the directory service. Part of this information is for when the client fails to communicate with the messaging server or the directory service. The client can then report this information to the server the next time it communicates.

All information in the auxiliary buffer MUST be added with an AUX_HEADER structure preceding the actual auxiliary information. Within the AUX_HEADER structure, the Version and Type fields combined determine which auxiliary block follows the header. For details about how to format the AUX_HEADER structure to indicate which auxiliary block follows, see section 2.2.2.2.

If the client receives an auxiliary AUX_HEADER structure block with a version and type it does not recognize (that is, does not support), it MUST skip over the entire block (header and auxiliary payload) without throwing an error. The AUX_HEADER structure block contains the length of the AUX_HEADER structure itself plus the following auxiliary block structure in its Size field, so the information can be skipped.