Remote Desktop Services provides functionality similar to a terminal-based, centralized host, or mainframe, environment in which multiple terminals connect to a host computer. Each terminal provides a conduit for input and output between a user and the host computer. A user can log on at a terminal, and then run applications on the host computer, accessing files, databases, network resources, and so on. Each terminal session is independent, with the host operating system managing conflicts between multiple users contending for shared resources. The primary difference between Remote Desktop Services and the traditional mainframe environment is that the dumb terminals in a mainframe environment only provide character-based input and output. A Remote Desktop Connection (RDC) client or emulator provides a complete graphical user interface including and support for a variety of input devices, such as a keyboard and mouse. In the Remote Desktop Services environment, an application runs entirely on the Remote Desktop Session Host (RD Session Host) server. The RDC client performs no local processing of application software. The server transmits the graphical user interface to the client. The client transmits the user's input back to the server.