When you are troubleshooting Outlook connectivity issues, you may be exposed to a lot of concepts, such as MAPI, RPC, etc. If you ever wonder what they are and how they fit together to make Outlook connectivity possible, you need to have a good understanding of Outlook’s architecture.
In general, there are several layers when it comes to Outlook connecting to a messaging system (like Exchange Server):
– Outlook
– MAPI Layer
– Service Provider Layer
– Transport Provider
– IP / Ethernet Layer
The interfaces between layers are COM interfaces. Each layer exposes one or more COM interfaces as well as methods on these interfaces.
For Outlook connectivity to work, each layer needs to function as expected. I made a simple graph and hope that it helps with understanding of these layers.

EMSMDB32 is a dll file you may have seen a lot if you have ever diagnosed Outlook connectivity issues.
EMSMDB is short for Electronic Messaging System Microsoft Database Provider. As its name implies, it’s a database provider. As such, it enables reading and writing messages to an Exchange store.
Since Outlook 2007, EMSMDB is also an address book provider as well as a transport provider. In other words, Outlook calls the methods provided by EMSMDB32 to access an Exchange store, to open the address book, and to submit messages to Exchange server.
Internally, the role of EMSMDB32 is to receive the calls from upper MAPI layers and convert them into ROP calls that are understood by Exchange.
The common methods provided by EMSMDB32 are EcDoConnect, EcDoDisConnect, EcDoRpcExt2, EcRRegisterPushNotification. At transport layer (RPC), each of these methods has a corresponding Operation number (OPNUM). For the details on this relationship, see MSDN article http://msdn.microsoft.com/en-us/library/ee178982(v=exchg.80).aspx
That’s some basic stuff about EMSMDB. Until next time.