Revision Summary Date Revision History Revision Class Comments 12/5/2008 0.1 Major Initial Availability 1/16/2009 0.1.1 Editorial Changed language and formatting in the technical content. 2/27/2009 0.1.2 Editorial Changed language and formatting in the technical content. 4/10/2009 0.1.3 Editorial Changed language and formatting in the technical content. 5/22/2009 0.1.4 Editorial Changed language and formatting in the technical content. 7/2/2009 1.0 Major Updated and revised the technical content. 8/14/2009 2.0 Major Updated and revised the technical content. 9/25/2009 3.0 Major Updated and revised the technical content. 11/6/2009 4.0 Major Updated and revised the technical content.
12/18/2009 5.0 Major Updated and revised the technical content. 1/29/2010 6.0 Major Updated and revised the technical content. 3/12/2010 6.0.1 Editorial Changed language and formatting in the technical content. 4/23/2010 6.0.2 Editorial Changed language and formatting in the technical content. 6/4/2010 7.0 Updated and revised the technical content. 7/16/2010 7.0 None No changes to the meaning, language, or formatting of the technical content. 8/27/2010 7.0 None No changes to the meaning, language, or formatting of the technical content. 10/8/2010 7.1 Clarified the meaning of the technical content. 11/19/2010 8.0 Major Updated and revised
the technical content. 3/30/2012 9.0 None No changes to the meaning, language, or formatting of the technical content. 7/12/2012 10.0 Updated and revised the technical content. 10/25/2012 10.0 None No changes to the meaning, language, or formatting of the technical content. 1/31/2013 10.1 Minor Clarified the meaning of the technical content. 8/8/2013 11.0 Major Updated and revised the technical content. 11/14/2013 11.0 None No changes to the meaning, language, or formatting of the technical content. 2/13/2014 11.0 None No changes to the meaning, language, or formatting of the technical content.
5/15/2014 11.0 None No changes to the meaning, language, or formatting of the technical content. 6/30/2015 12.0 Major Significantly changed the technical content. 10/16/2015 12.0 None No changes to the meaning, language, or formatting of the technical content. 7/14/2016 13.0 Major Significantly changed the technical content. 6/1/2017 13.0 None No changes to the meaning, language, or formatting of the technical content. 9/15/2017 14.0 Major Significantly changed the technical content. 12/1/2017 14.0 None No changes to the meaning, language, or formatting of the technical content.
Messages Transport The Remote Desktop Protocol Video Redirection Virtual Channel Extension is designed to operate over dynamic virtual channels, as specified in . The channel name used for this dynamic virtual channel is "TSMF". The usage of a channel name when opening a dynamic virtual channel is specified in section 2.2.2.1. Message Syntax Shared Message Header (SHARED_MSG_HEADER) packet in this extension contains a common header.<1> 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 InterfaceId MessageId FunctionId messagePayload (variable) ... InterfaceId (4 bytes): The InterfaceId field is broken out as follows: 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 InterfaceValue Mask InterfaceValue (30 bits): A 30-bit unsigned integer that represents the common identifier for the . The default value is 0x00000000. If the message uses this default interface ID, the message is interpreted for the main interface for which this channel has been instantiated. All other values MUST be retrieved either from an Interface Query response (QI_RSP), section2.2.2.1.2, or from responses that contain interface IDs. This ID is valid until an interface release (IFACE_RELEASE) message ([MS-RDPEXPS] section 2.2.2.2) is sent or received with that ID. After an IFACE_RELEASE message is processed, this ID is considered invalid. Mask (2 bits): These two bits in the SHARED_MSG_HEADER header MUST be set to one of the following values. Meaning STREAM_ID_STUB 0x80000000 Indicates that the SHARED_MSG_HEADER is used in a response message. STREAM_ID_PROXY Indicates that the SHARED_MSG_HEADER is not used in a response message.
ON_SAMPLE 0x00000103 The server the message. SET_VIDEO_WINDOW 0x00000104 The server sends the message. ON_NEW_PRESENTATION 0x00000105 The server sends the message. SHUTDOWN_PRESENTATION REQ 0x00000106 The server the message. SET_TOPOLOGY_REQ 0x00000107 The server sends the message. CHECK_FORMAT_SUPPORT_REQ 0x00000108 The server sends the message. ON_PLAYBACK_STARTED 0x00000109 The server sends the message. ON_PLAYBACK_PAUSED 0x0000010a The server sends the message. ON_PLAYBACK_STOPPED 0x0000010b The server the message. ON_PLAYBACK_RESTARTED 0x0000010c The server the message. ON_PLAYBACK_RATE_CHANGED 0x0000010d The server sends the message. ON_FLUSH 0x0000010e The server the message. ON_STREAM_VOLUME 0x0000010f The server sends the message. ON_CHANNEL_VOLUME 0x00000110 The server sends the message. ON_END_OF_STREAM 0x00000111 The server sends the message. SET_ALLOCATOR 0x00000112 The server sends the message. NOTIFY_PREROLL 0x00000113 The server the message. UPDATE_GEOMETRY_INFO 0x00000114 The server sends the message. REMOVE_STREAM 0x00000115 The server sends the message.
Presentation Initialization and Termination Messages New Presentation Message (NEW_PRESENTATION) This message is used by the server to notify the client of a new . 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 Header (variable) ... PresentationId (16 bytes) ... ... PlatformCookie Header (variable): The common message header (as specified in section ). The InterfaceId field MUST be set to 0x00000000. The Mask field MUST be set to STREAM_ID_PROXY. The FunctionId field MUST be set to ON_NEW_PRESENTATION (0x00000105). PresentationId (16 bytes): A 16-byte ( section 2.3.4.2) that identifies the presentation. PlatformCookie (4 bytes): A 32-bit unsigned integer that indicates preferred platforms. This field SHOULD be set to values defined in . Check Format Support Request Message (CHECK_FORMAT_SUPPORT_REQ) This message is used by the server to check if the client supports playback of media content in a specific . 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 Header (variable) ... PlatformCookie NoRolloverFlags numMediaType pMediaType (variable) ...
Symbolic name/value Description TSMM_CLIENT_EVENT_ENDOFSTREAM 0x0064 The client sends this EventId notification to the server when it encounters an marker in its sample queue. TSMM_CLIENT_EVENT_STOP_COMPLETED 0x00C8 The client sends this EventId notification to the server when it finishes processing a stop message. TSMM_CLIENT_EVENT_START_COMPLETED 0x00C9 The client sends this EventId notification to the server when it finishes processing a start message. TSMM_CLIENT_EVENT_MONITORCHANGED 0x012C The client sends this EventId notification to the server when the client display settings change during playback or when the video window on the client moves to a different monitor. MMREDIR_CAPABILITY_AUDIOSUPPORT Constants Audio support is defined in the table that follows.
Index A Abstract data client ( 47, 54) server ( 47, 48) 26 15 C 15 75 25 26 Client abstract data ( 47, 54) triggered events ( 47, 54) initialization ( 47, 54) local events ( 48, 59) message processing 54 47 54 55 59 sequencing rules 54 47 54 55 timer events ( 48, 59) timers ( 47, 54) 22 70 21 22 D Data model - abstract client ( 47, 54) server ( 47, 48) E Examples 70 71 server data interface annotations 60 66 68 65 61 69 23 24 F 15 G 43 43 8 H Higher-layer triggered events client ( 47, 54) server ( 47, 48) I 72 72 9 Initialization client ( 47, 54) server ( 47, 48) Interface Manipulation Exchange Capabilities Interface 15 messages ( 53, 59) 71 20 20 8 L Local events client ( 48, 59) server ( 48, 54) M Message processing client 54 47 54 55 server 48 47 49 Messages 21 43 20 20 46 43 22 17 syntax 21 20 20 22 17
17 40 41 45 45 39 45 43 46 46 46 43 43 43 43 N 24 9 34 O 38 35 35 31 32 31 30 32 34 38 local events 59 54 9 10 15 9 server data interface 10 13 14 12 11 14 Redirection Virtual Channel Protocol 10 9 P 72 72 Playback Acknowledgment message 48 54 21 15 15 48 73 R 8 9 9 15 28 20 20 S Security 72 72 54 Sequencing client 54 47 54 55 server 48 47 49 Server abstract data model ( 47, 48) higher-layer triggered events ( 47, 48) initialization ( 47, 48) local events ( 48, 54) message processing 48 47 49 54 sequencing rules 48 47 49 timer events ( 48, 53) timers ( 47, 48) Server data interface annotations 60 66 68 65 61 69 channel setup messages ( 23, 49, 55) data streaming messages ( 33, 52, 57) geometry handling messages ( 36, 53, 58) playback state messages ( 30, 51, 57) presentation initialization and termination messages ( 24, 49, 55) volume handling messages ( 38, 53, 58) 22 33 23 29 27 27 36 17