1.3 Overview

The Terminal Services Terminal Server Runtime Interface Protocol is a simple request-response RPC-based protocol used for remotely querying and configuring various aspects of a terminal server. For example, this protocol can be used to query the number of active sessions running on a terminal server. For every method that the server receives, it executes the method and returns a completion. The client simply returns the completion status to the caller.

The protocol consists of four major subcomponents:

  • Local Session Manager (LSM): A system component that creates, destroys, and manages sessions.

  • TermService: A service running on the system that manages remote connection requests.

  • VM Host Agent: A service running on the system that monitors the states of the sessions within virtual machines hosted on the server [MSFT-VS].<1>

  • Virtual IP: A service running on the system that assigns IP addresses to sessions that are created by using remote connection requests.

The protocol can be further divided into the following functional categories:<2>

Functional categories associated with the Local Session Manager (LSM) subcomponent:

  • Local Session Manager (LSM) Session: These calls collect information, and control and configure sessions running on the terminal server.

  • Local Session Manager (LSM) Notification: These RPC calls are asynchronous and can be used to receive event notifications from the LSM.

  • Local Session Manager (LSM) Enumeration: These calls are used to enumerate information related to sessions running on a terminal server.

Functional categories associated with the VM Host Agent subcomponent:

  • VM Host Agent Session: These calls collect information as well as control and configure sessions running on the virtual machines hosted on the server.

  • VM Host Agent Notification: These RPC calls are asynchronous and can be used to receive event notifications from VM Host Agent.

  • VM Host Agent Enumeration: These calls are used to enumerate information related to sessions running on the virtual machines hosted on the server.

Functional categories associated with the TermService subcomponent:

  • TermService: These calls can be used to query and configure various aspects of the TermServices running on the terminal server.

  • TermService Listener: These calls are specific to the listener session running on the terminal server and listening for incoming connection requests.

  • Legacy: The legacy calls used by Terminal Services clients.