1.3.5 Keyboard and Mouse Input

The client sends mouse and keyboard input PDUs in two types: slow-path and fast-path. Slow-path is similar to T.128 input formats for input PDUs, with some modifications for RDP input requirements. Fast-path was introduced to take advantage of the fact that in RDP there are no extended Multipoint Communication Services (MCS) topologies, just one top-level node and one leaf-node per socket. Fast-path also uses reduced or removed headers and alternate bytestream-orientated encoding formats to reduce bandwidth and CPU cycles for encode and decode.

Client-to-server Input Event PDUs convey keyboard and mouse data to the server so that it can inject input as needed. The client can also periodically synchronize the state of the toggle keys (for example, NUM LOCK and CAPS LOCK) using the Synchronize Event PDU. This is necessary when the client loses input focus and then later gets the focus back (possibly with new toggle key states). In a similar vein, the server can also force an update of the local keyboard toggle keys or the local input method editor (IME) being used to ensure that synchronization with the session is maintained.