Microsoft RPC

Source: Wikipedia, the free encyclopedia.

Microsoft RPC (

UCS-2 (but not Unicode
) strings, implicit handles, and complex calculations in the variable-length string and structure paradigms already present in DCE/RPC.

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), a common expression in DCOM IDL files.

Use

MSRPC was used by Microsoft to seamlessly create a client/server model in

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.

History

MSRPC is derived from the

Open Group
), wanted to use the complex DCE or such components as DCE/RPC at the time.

Microsoft's Component Object Model is based heavily on MSRPC, adding interfaces and inheritance. The marshalling semantics of DCE/RPC are used to serialize method calls and results between processes with separate address spaces, albeit COM did not initially allow network calls between different machines.

With Distributed Component Object Model (DCOM), COM was extended to software components distributed across several networked computers. DCOM, which originally was called "Network OLE", extends Microsoft's COM, and provides the communication substrate under Microsoft's COM+ application server infrastructure.

References

  • Shirley, John; Rosenberry, Ward (1995). Microsoft RPC programming guide. O'Reilly & Associates, Inc. Open Book. .
  • Luke Kenneth Casson Leighton (1999). DCE/RPC over SMB: Samba and Windows NT Domain Internals. Sams. .

External links

  • MSRPC at MSDN
  • [1], a chapter on MSRPC from a technical article by Jean-Baptiste Marchand.