1.3.3 Licensing PDU Flows

A target machine (terminal server or personal terminal server) initiates the licensing protocol data unit (PDU) exchange by sending a Server License Request (section 2.2.2.1) message on receipt of the Client Info PDU (see [MS-RDPBCGR] sections 2.2.1.11 and 3.3.5.3.11).

When a Remote Desktop client connects to a target machine, either the client has a license, or it does not.

If the client is connecting to a terminal server and the client does not have a license, the terminal server tries to obtain a license (See New License Flow (section 1.3.3.1).) If the client has a license, the terminal server validates the version and expiry date. If the license is valid, access is allowed. If the license is expired, temporary, or a lower version than the operating system version of the terminal server, the license is upgraded. For the steps to upgrade the license, see Upgrade License Flow (section 1.3.3.2).

If the target machine is a personal terminal server, whether the client sends the license or not, the server always sends a Licensing Error Message (section 2.2.2.8) with the error code STATUS_VALID_CLIENT and the state transition code ST_NO_TRANSITION. Also, in the case that the client sends a license, the server does not validate it. The licensing protocol is complete at this point.

Licensing PDU flows in Terminal Server

Figure 2: Licensing PDU flows in Terminal Server

This flow chart describes the logic for the following cases:

  • A license is issued through the terminal server. The server issues a CAL to the client when the client does not have a license in its license store.

  • A license is upgraded. A CAL is upgraded when it is a temporary license or a permanent license that is going to expire in seven days. A valid license has to be upgraded if the license is meant for an older version of the terminal server or if it has expired.

  • An error condition occurs.