Microsoft Wiki

Checkout our wiki's socials

READ MORE

Microsoft Wiki
Stub
This article is a stub, an article too short to provide more than rudimentary information about a subject. You can help the Microsoft Wiki by expanding it.

Microsoft RPC (Remote Procedure Call) is an enhanced adaptation of the DCE/RPC (Distributed Computing Environment/Remote Procedure Call). This version introduces several modifications, including partial support for UCS-2 strings—though it does not fully support Unicode. Additionally, Microsoft RPC incorporates implicit handles, which streamline the handling of remote calls, and it allows for complex calculations within the existing variable-length string and structure frameworks found in DCE/RPC. These enhancements aim to improve the functionality and efficiency of remote communications in Microsoft environments.

Example[]

The DCE 1.0 reference implementation is limited in its capability to define size constructs, permitting only straightforward expressions like size_is(len) or size_is(len-1). In contrast, the MSRPC (Microsoft Remote Procedure Call) framework supports more intricate constructs, allowing for complex expressions such as size_is(len / 2 - 1) and length_is((max & ~0x7) + 0x7). These more advanced constructs are frequently utilized in DCOM (Distributed Component Object Model) IDL (Interface Definition Language) files, illustrating a significant enhancement in flexibility over the DCE 1.0 implementation.

Use[]

the implementation of Microsoft Remote Procedure Call (MSRPC) by Microsoft to facilitate the creation of a client/server model in Windows NT with minimal effort. It highlights that various Windows Server domain protocols and Microsoft's DNS administrative tool are built entirely on MSRPC. Additionally, it notes that Microsoft Exchange Server 5.5 utilizes MSRPC for its administrative front-ends, enhancing security through the "proxying" of the Messaging Application Programming Interface (MAPI) over MSRPC functions, which allows for encryption without directly altering the MAPI protocol.

History[]

The origins of MSRPC, which is based on the Distributed Computing Environment (DCE) 1.2 reference implementation developed by the Open Software Foundation. Although initially created as an open standard for computing infrastructure, Microsoft has copyrighted MSRPC. At the time of its inception, Unix vendors, now part of the Open Group, were reluctant to adopt DCE and its complex components, including DCE/RPC. This reflects the challenges faced in establishing widely accepted standards in the computing industry.

Microsoft's Component Object Model (COM) is fundamentally built upon Microsoft Remote Procedure Call (MSRPC), incorporating features such as interfaces and inheritance. It employs the marshalling semantics of DCE/RPC to serialize method calls and their results between processes that operate in distinct address spaces. However, it is important to note that COM was originally designed without the capability to enable network calls across different machines. This historical context highlights the evolution and limitations of COM in its early development.

The Distributed Component Object Model (DCOM) builds upon the existing Component Object Model (COM) by enabling software components to operate over multiple networked computers. Initially referred to as "Network OLE," DCOM enhances Microsoft's COM framework, facilitating communication between components distributed across various systems. This technology serves as the foundational communication layer for Microsoft's COM+ application server infrastructure, allowing for more robust and scalable application development in networked environments.

References[]

External links[]