The Wire Format Protocol enables a client to communicate with a server to access personal messaging data. Communications with the server are divided into three major functional areas: (1) initiating and establishing connection with the server, (2) issuing remote operations (ROPs) to the server for mailbox data, and (3) terminating communications with the server. This functionality is contained in the EMSMDB interface, as described in section 3.1 and section 3.2. If events are pending on the server that require client action, the client gets notification of those pending events by using the functionality contained in the AsyncEMSMDB interface, as described in section 3.3 and section 3.4.
The following figure shows a simplified overview of client and server communications.
Figure 1: Client/server communications
Before a client can retrieve private mailbox or public folder data from a server on the EMSMDB interface, it first connects with the server, as described in section 126.96.36.199, and establishes a session context handle. The session context handle is an RPC context handle that refers to the Session Context created by the server. The client stores this session context handle and uses it on subsequent RPCs on the EMSMDB interface.
After the server has returned the session context handle to the client, as described in section 188.8.131.52, the client begins issuing ROPs to the server. The client retrieves private mailbox or public folder data by using the method described in section 184.108.40.206. This single interface function is used to submit a group of ROP commands to the server, and there are no separate interface functions to perform different operations against mailbox data. The ROP request operations are tokenized into a request buffer and sent to the server as a byte array. The server parses the ROP request buffer and performs actions. The response to these actions is then serialized into a ROP response buffer and returned to the client as a byte array. At the EMSMDB interface level, the format of these ROP request buffers and ROP response buffers is not understood. For more information about ROP commands and how to interpret the ROP buffers, see [MS-OXCROPS].
To receive notification that events are available on the server related to the Session Context, the client establishes an asynchronous connection to the server to support notification, as described in sections 3.4 and 220.127.116.11. Using the asynchronous context handle returned by the server, the client uses the AsyncEMSMDB interface to instruct the server to return notification of an event, as described in section 3.4.4 and section 18.104.22.168.
When the client is finished with the session, the client disconnects from the server as described in section 22.214.171.124.