What Is RPC?

Applies To: Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 with SP1, Windows Server 2003 with SP2

What Is RPC?

In this section

  • Terms and Definitions

  • RPC Dependencies and Interactions

Microsoft Remote Procedure Call (RPC) is a powerful technology for creating distributed client/server programs. RPC is an interprocess communication technique that allows client and server software to communicate. The Microsoft RPC facility is compatible with the Open Group’s Distributed Computing Environment (DCE) specification for remote procedure calls and is interoperable with other DCE-based RPC systems, such as those for HP-UX and IBM AIX UNIX–based operating systems.

Computer operating systems and programs have steadily gotten more complex over the years. With each release, there are more features. The growing intricacy of systems makes it more difficult for developers to avoid errors during the development process. Often, developers create a solution for their system or application when a nearly identical solution has already been devised. This duplication of effort consumes time and money and adds complexity to already complex systems.

RPC is designed to mitigate these issues by providing a common interface between applications. RPC serves as a go–between for client/server communications. RPC is designed to make client/server interaction easier and safer by factoring out common tasks, such as security, synchronization, and data flow handling, into a common library so that developers do not have to dedicate the time and effort into developing their own solutions.

Terms and Definitions

The following terms are associated with RPC.

Client

A process, such as a program or task, that requests a service provided by another program. The client process uses the requested service without having to “deal” with many working details about the other program or the service.

Server

A process, such as a program or task, that responds to requests from a client.

Endpoint

The name, port, or group of ports on a host system that is monitored by a server program for incoming client requests. The endpoint is a network-specific address of a server process for remote procedure calls. The name of the endpoint depends on the protocol sequence being used.

Endpoint Mapper (EPM)

Part of the RPC subsystem that resolves dynamic endpoints in response to client requests and, in some configurations, dynamically assigns endpoints to servers.

Client Stub

Module within a client application containing all of the functions necessary for the client to make remote procedure calls using the model of a traditional function call in a standalone application. The client stub is responsible for invoking the marshalling engine and some of the RPC application programming interfaces (APIs).

Server Stub

Module within a server application or service that contains all of the functions necessary for the server to handle remote requests using local procedure calls.

RPC Dependencies and Interactions

RPC is a client/server technology in the most generic sense. There is a sender and a receiver; data is transferred between them. This can be classic client/server (for example, Microsoft Outlook communicating with a server running Microsoft Exchange Server) or system services within the computer communicating with each other. The latter is especially common. Much of the Windows architecture is composed of services that communicate with each other to accomplish a task. Most services built into the Windows architecture use RPC to communicate with each other.

The following table briefly describes the services in Windows Server 2003 that depend on the RPC system service (RPCSS).

Services That Depend on RPCSS

Service Description

Background Intelligent Transfer Service

Transfers data between clients and servers in the background.

COM+ Event System

Supports System Event Notification Service (SENS), which provides automatic distribution of events to subscribing Component Object Model (COM) components.

COM+ System Application

Manages the configuration and tracking of COM+-based components.

Cryptographic Services

Provides three management services: Catalog Database Service, which confirms the signatures of Windows files; Protected Root Service, which adds and removes Trusted Root Certification Authority certificates from this computer; and Key Service, which helps enroll this computer for certificates.

DHCP Server

Performs TCP/IP configuration for DHCP clients, including dynamic assignments of IP addresses, specification of the WINS and DNS servers, and connection–specific Domain Name System (DNS) names.

Distributed Link Tracking Client

Enables client programs to track linked files that are moved within an NTFS volume to another NTFS volume on the same computer or to an NTFS volume on another computer.

Distributed Link Tracking Server

Enables the Distributed Link Tracking Client service within the same domain to provide more reliable and efficient maintenance of links within the domain.

Distributed Link Transaction Coordinator

Coordinates transactions that span multiple resource managers, such as databases, message queues, and file systems.

DNS Server

Enables DNS clients to resolve DNS names by answering DNS queries and dynamic update requests.

Error Reporting Service

Collects, stores, and reports unexpected application failures to Microsoft.

File Replication Service

Allows files to be automatically copied and maintained simultaneously on multiple servers.

Help and Support

Enables Help and Support Center to run on the computer.

Human Interface Device Access

Enables generic input access to Human Interface Devices (HID), which activates and maintains the use of predefined hot buttons on keyboards, remote controls, and other multimedia devices.

Indexing Service

Indexes contents and properties of files on local and remote computers; provides rapid access to files through flexible querying language.

IPSec Services

Provides end-to-end security between clients and servers on TCP/IP networks.

Kerberos Key Distribution Center

On domain controllers, enables users to log on to the network using the Kerberos authentication protocol.

Logical Disk Manager

Detects and monitors new hard disk drives and sends disk volume information to Logical Disk Manager Administrative Service for configuration.

Logical Disk Manager Administrative Service

Configures hard disk drives and volumes.

Messenger

Transmits net send and Alerter service messages between clients and servers. This service is not related to Windows Messenger.

Microsoft Software Shadow Copy Provider

Manages software-based volume shadow copies taken by the Volume Shadow Copy service.

Network Connections

Manages objects in the Network and Dial-Up Connections folder in which you can view local area network (LAN) and remote connections.

Print Spooler

Manages all local and network print queues and controls all printing jobs.

Protected Storage

Protects storage of sensitive information, such as private keys and prevents access by unauthorized services, processes, or users.

Remote Desktop Help Session Manager

Manages and controls Remote Assistance.

Remote Registry

Enables remote users to modify registry settings on a computer.

Removable Storage

Manages and catalogs removable media and operates automated removable media devices.

Resultant Set of Policy Provider

Enables a user to connect to a remote computer, access the Windows Management Instrumentation (WMI) database for that computer, and either verify the current Group Policy settings made for the computer or check settings before they are applied.

Routing and Remote Access

Enables multi-protocol LAN-to-LAN, LAN-to-wide area network (WAN), virtual private network (VPN), and network address translation (NAT) routing services for clients and servers on the network.

Security Accounts Manager

Upon startup, signals other services that the Security Accounts Manager (SAM) is ready to accept requests.

Shell Hardware Detection

Provides notifications for AutoPlay hardware events.

Task Scheduler

Enables a user to configure and schedule automated tasks on the computer.

Telephony

Provides Telephony API (TAPI) support for clients using programs that control telephony devices and IP-based voice connections.

Telnet

Enables a remote user to log on to a computer and run programs; supports various TCP/IP Telnet clients, including UNIX-based and Windows-based computers.

Terminal Services

Allows users to connect interactively to a remote computer. Remote Desktop, Fast User Switching, Remote Assistance, and Terminal Server depend on this service.

Terminal Services Session Directory

Enables a user connection request to be routed to the appropriate terminal server in a cluster.

Upload Manager

Manages the synchronous and asynchronous file transfers between clients and servers on the network.

Virtual Disk Service

Provides software volume and hardware volume management service.

Volume Shadow Copy

Manages and implements Volume Shadow Copies used for backup and other purposes.

Windows Audio

Manages audio devices for Windows-based programs.

Windows Image Acquisition (WIA)

Provides image acquisition services for scanners and cameras.

Windows Installer

Installs, repairs, and removes software according to instructions contained in .MSI files.

Windows Internet Name Service (WINS)

Resolves NetBIOS names for TCP/IP clients by locating network services that use NetBIOS names.

Windows Management Instrumentation

Provides a common interface and object model to access management information about operating system, devices, applications, and services. If this service is stopped, most Windows-based software will not function properly.

Wireless Configuration

Enables automatic configuration for IEEE 802.11 adapters.

WMI Performance Adapter

Provides performance library information from WMI providers to clients on the network.