3.2.5.1 Connection Control Messages and Notifications

The following connection control messages can be used:

MILCTRLCMD_OPENCONNECTION: The server MUST send this message before any other messages, after a dynamic virtual channel has been opened for this protocol.

MILCTRLCMD_CLOSECONNECTION: The server MUST send this message after all messages in a connection session and before closing the dynamic virtual channel for this connection.

MILCTRLCMD_VERSIONREQUEST: The server SHOULD send this message to request the list of supported protocol versions. The client MUST respond with a MILMSG_VERSIONREPLY notification.

MILCTRLCMD_VERSIONANNOUNCEMENT: The server MUST send this message in response to the client sending a MILMSG_VESIONREPLY notification.

MILCTRLCMD_OPENCHANNEL, MILCTRLCMD_CLOSECHANNEL and MILCTRLCMD_DATAONCHANNEL: These messages are sent by the server to open and to close channels, and to send data on channels within a connection. Section 3.2.5.1.1 describes these messages in more detail.

MILCTRLCMD_HANDLESURFACEMANAGEREVENT: The server SHOULD send this message to indicate that the connection will render surfaces created by the [MS-RDPEDC] protocol.

Notifications: There are two types of notifications: connection notifications and channel notifications. Connection notifications are notifications that are scoped to the entire connection. These are sent using MILCTRLCMD_CONNECTIONNOTIFICATION. Channel notifications can be sent using MILCTRLCMD_CHANNELNOTIFICATION and MILCTRLCMD_CONNECTIONBROADCAST.

The MILCTRLCMD_CONNECTIONNOTIFICATION payload is a connection notification that can be:

MILMSG_VERSIONREPLY: The client MUST send this notification in response to a MILCTRLCMD_VERSIONREQUEST message.

MILMSG_CONNECTIONLOST: This MUST be sent by the client when it is about to terminate a connection.

The MILCTRLCMD_CHANNELNOTIFICATION payload is a channel notification that MAY be sent as a response to channel messages. The channelHandle field of the message contains the originating channel. These messages can be any notification described in section 2.2.9. Sending rules are described in section 3.3.5, where applicable.