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.