MSRPC
From Wikipedia, the free encyclopedia
MSRPC (Microsoft Remote Procedure Call) is a modified version of DCE/RPC. Additions include support for Unicode strings, implicit handles, inheritance of interfaces (which are extensively used in DCOM), and complex calculations in the variable-length string and structure paradigms already present in DCE/RPC.
[edit] Example
The DCE 1.0 reference implementation only allows such constructs as "size_is(len)", or possibly "size_is(len-1)". MSRPC allows much more complex constructs such as "size_is(len / 2 - 1)" and even "length_is ((max & ~0x7) + 0x7)" which is one quite common expression utilised in DCOM IDL files.
[edit] Use
MSRPC was used by Microsoft to seamlessly create a client/server model in Windows NT, with very little effort. For example, the Windows Server domains protocols are entirely MSRPC based, as is Microsoft's DNS administrative tool. Microsoft Exchange Server 5.5's administrative front-ends are all MSRPC client/server applications, and its MAPI was made more secure by "proxying" MAPI over a set of simple MSRPC functions that enable encryption at the MSRPC layer without involving the MAPI protocol.