[MS-RDPEDYC]: Remote Desktop Protocol: Dynamic Channel Virtual Channel Extension

This topic lists the Errata found in [MS-RDPEDYC] since it was last published. Since this topic is updated frequently, we recommend that you subscribe to these RSS or Atom feeds to receive update notifications.

Errata are subject to the same terms as the Open Specifications documentation referenced.

Mt589971.image001(en-us,PROT.20).pngRSS

Mt589971.image001(en-us,PROT.20).pngAtom

To view a PDF file of the errata for the previous versions of this document, see the following ERRATA Archives:

October 16, 2015 - Download

June 30, 2015 - Download

June 1, 2017 - Download

Errata below are for Protocol Document Version V17.0 – 2017/09/15.

Errata Published*

Description

2017/10/02

In Section 2.2.3.3, DVC Data First Compressed PDU (DYNVC_DATA_FIRST_COMPRESSED), specified that the Data field is a structure of type RDP_SEGMENTED_DATA.

Changed from:

Data (variable): An RDP8_BULK_ENCODED_DATA ([MS-RDPEGFX] section 2.2.5.3) structure containing the first block of data in a fragmented message, where the data has been compressed with the RDP 8.0 Bulk Compression algorithm ([MS-RDPEGFX] section 3.1.9.1) with the following modifications:

§ Maximum number of uncompressed bytes in a single segment: 8,192 instead of 65,535.

§ Maximum match distance / minimum history size: 8,192 bytes instead of 2,500,000 bytes.

§ The compression type code is PACKET_COMPR_TYPE_RDP8_LITE (0x06) instead of PACKET_COMPR_TYPE_RDP8 (0x04).

If the data block cannot be compressed, the length of the Data field will be exactly one byte larger than the length of the uncompressed data block, in order to contain the header field. Thus, the maximum length of the data block, before compression, is 1,599 bytes minus the space taken for the Cmd, Len, cbId, ChannelId, and Length fields.

 

Changed to:

Data (variable): An RDP_SEGMENTED_DATA ([MS-RDPEGFX] section 2.2.5.1) structure containing a single RDP8_BULK_ENCODED_DATA ([MS-RDPEGFX] section 2.2.5.3) segment. The segment contains the first block of data in a fragmented message, where the data has been compressed with the RDP 8.0 Bulk Compression algorithm ([MS-RDPEGFX] section 3.1.9.1) with the following modifications:

§ Maximum number of uncompressed bytes in a single segment: 8,192 instead of 65,535.

§ Maximum match distance / minimum history size: 8,192 bytes instead of 2,500,000 bytes.

§ The compression type code is PACKET_COMPR_TYPE_RDP8_LITE (0x06) instead of PACKET_COMPR_TYPE_RDP8 (0x04).

If the data block cannot be compressed, the length of the Data field will be exactly two bytes larger than the length of the uncompressed data block, in order to contain the RDP_SEGMENTED_DATA descriptor and RDP8_BULK_ENCODED_DATA header fields. Thus, the maximum length of the data block, before compression, is 1,598 bytes minus the space taken for the Cmd, Len, cbId, ChannelId, and Length fields.

In Section 2.2.3.4, DVC Data Compressed PDU (DYNVC_DATA_COMPRESSED), specified that the Data field is a structure of type RDP_SEGMENTED_DATA.

Changed from:

Data (variable): An RDP8_BULK_ENCODED_DATA ([MS-RDPEGFX] section 2.2.5.3) structure containing the first and only block of data in an unfragmented message, or a block of data following the first block in a fragmented message, where the data has been compressed with the RDP 8.0 Bulk Compression algorithm ([MS-RDPEGFX] section 3.1.9.1) with the following modifications:

§ Maximum number of uncompressed bytes in a single segment: 8,192 instead of 65,535.

§ Maximum match distance / minimum history size: 8,192 bytes instead of 2,500,000 bytes.

§ The compression type code is PACKET_COMPR_TYPE_RDP8_LITE (0x06) instead of PACKET_COMPR_TYPE_RDP8 (0x04).

If the data block cannot be compressed, the length of the Data field will be exactly one byte larger than the length of the uncompressed data block, in order to contain the header field. Thus, the maximum length of the data block, before compression, is 1,599 bytes minus the space taken for Cmd, Sp, cbId, and ChannelId fields.

Changed to:

Data (variable): An RDP_SEGMENTED_DATA ([MS-RDPEGFX] section 2.2.5.1) structure containing a single RDP8_BULK_ENCODED_DATA ([MS-RDPEGFX] section 2.2.5.3) segment. The segment contains the first and only block of data in an unfragmented message, or a block of data following the first block in a fragmented message, where the data has been compressed with the RDP 8.0 Bulk Compression algorithm ([MS-RDPEGFX] section 3.1.9.1) with the following modifications:

§ Maximum number of uncompressed bytes in a single segment: 8,192 instead of 65,535.

§ Maximum match distance / minimum history size: 8,192 bytes instead of 2,500,000 bytes.

§ The compression type code is PACKET_COMPR_TYPE_RDP8_LITE (0x06) instead of PACKET_COMPR_TYPE_RDP8 (0x04).

If the data block cannot be compressed, the length of the Data field will be exactly two bytes larger than the length of the uncompressed data block, in order to contain the RDP_SEGMENTED_DATA descriptor and RDP8_BULK_ENCODED_DATA header fields. Thus, the maximum length of the data block, before compression, is 1,598 bytes minus the space taken for Cmd, Sp, cbId, and ChannelId fields.

In Section 4.3.3, DVC Data First Compressed PDU, updated leading byte of data field in the DYNVC_DATA_FIRST_COMPRESSED PDU sample.

Changed from:

The following is an annotated sample of the DYNVC_DATA_FIRST_COMPRESSED PDU (section 2.2.3.3).

    00000000   64 03 7b 0c 26 38 c4 3f f4 74 01                d.{.&8Ä?ôt.
    64   -> Header bitmask fields
    
    0   - --\
    1   -   | DYNVC_DATA_FIRST_COMPRESSED::Cmd = DataFirstCompressed (6)
    1   -   |
    0   - --/
    0   - --\ DYNVC_DATA_FIRST_COMPRESSED::Sp = 1
    1   - --/
    0   - --\ DYNVC_DATA_FIRST_COMPRESSED::cbId = 0
    0   - --/
    
    03   -> DYNVC_DATA_FIRST_COMPRESSED::ChannelId = 0x3
    
    7b   0c -> DYNVC_DATA_FIRST_COMPRESSED::Length = 0x0c7b = 3195 bytes
    
    26   .... 01 -> DYNVC_DATA_COMPRESSED::Data = 7 bytes of compressed payload
    
    26   = PACKET_COMPRESSED + type 6
    
    38   = binary 0 0111000
    c4   = binary 1 10001 00
    3f   = binary 001 11111
    f4   = binary 11110 100
    74   = binary 0111010 0
    
    01   = one bit (least-significant) ignored from 0x74 byte.

Changed to:

The following is an annotated sample of the DYNVC_DATA_FIRST_COMPRESSED PDU (section 2.2.3.3).

    00000000   64 03 7b 0c e0 26 38 c4 3f f4 74 01                d.{.à&8Ä?ôt.
    64   -> Header bitmask fields
    
    0   - --\
    1   -   | DYNVC_DATA_FIRST_COMPRESSED::Cmd = DataFirstCompressed (6)
    1   -   |
    0   - --/
    0   - --\ DYNVC_DATA_FIRST_COMPRESSED::Sp = 1
    1   - --/
    0   - --\ DYNVC_DATA_FIRST_COMPRESSED::cbId = 0
    0   - --/
    
    03   -> DYNVC_DATA_FIRST_COMPRESSED::ChannelId = 0x3
    
    7b   0c -> DYNVC_DATA_FIRST_COMPRESSED::Length = 0x0c7b = 3195 bytes
    
    e0   .... 01 -> DYNVC_DATA_COMPRESSED::Data = 8 bytes of compressed payload
    e0   = DEBLOCK_SINGLE
    
    26   = PACKET_COMPRESSED + type 6
    
    38   = binary 0 0111000
    c4   = binary 1 10001 00
    3f   = binary 001 11111
    f4   = binary 11110 100
    74   = binary 0111010 0
    
    01   = one bit (least-significant) ignored from 0x74 byte.

In Section 4.3.4, DVC Data Compressed PDU, updated leading byte of data field in the DYNVC_DATA_FIRST_COMPRESSED PDU sample.

Changed from:

The following is an annotated sample of the DYNVC_DATA_COMPRESSED PDU (section 2.2.3.4).

    00000000   70 03 26 88 7f e8 f0 02                         p.&ˆèð.
    70   -> Header bitmask fields
    
    0   - --\
    1   -   | DYNVC_DATA_COMPRESSED::Cmd = DataCompressed (7)
    1   -   |
    1   - --/
    0   - --\ DYNVC_DATA_COMPRESSED::Sp = 0
    0   - --/
    0   - --\ DYNVC_DATA_COMPRESSED::cbId = 0
    0   - --/
    
    03   -> DYNVC_DATA_COMPRESSED::ChannelId = 0x3
    
    26   .... 07 -> DYNVC_DATA_COMPRESSED::Data = 6 bytes of compressed payload
    
    26   = PACKET_COMPRESSED + type 6
    
    88   = binary 10001 000
    7f   = binary 01 111111
    e8   = binary 1110 1000
    f0   = binary 111100 00
    
    02   = two bits (least-significant) ignored from 0x00 byte.
 Compressed   payload binary stream:
    10001   00001 = match distance = 1 (referring to "q" from the previous   payload in section 4.3.3)
    1111111110   1000111100 = match length = 1024 + 572 = 1596

Changed to:

The following is an annotated sample of the DYNVC_DATA_COMPRESSED PDU (section 2.2.3.4).

 00000000   70 03 e0 26 88 7f e8 f4 02                         p.à&ˆ.èô.
    70   -> Header bitmask fields
    
    0   - --\
    1   -   | DYNVC_DATA_COMPRESSED::Cmd = DataCompressed (7)
    1   -   |
    1   - --/
    0   - --\ DYNVC_DATA_COMPRESSED::Sp = 0
    0   - --/
    0   - --\ DYNVC_DATA_COMPRESSED::cbId = 0
    0   - --/
    
    03   -> DYNVC_DATA_COMPRESSED::ChannelId = 0x3
    
    e0   .... 02 -> DYNVC_DATA_COMPRESSED::Data = 7 bytes of compressed payload
    e0   = DEBLOCK_SINGLE
    
    26   = PACKET_COMPRESSED + type 6
    
    88   = binary 10001 000
    7f   = binary 01 111111
    e8   = binary 1110 1000
    f4   = binary 111101 00
    
    02   = two bits (least-significant) ignored from 0x00 byte.
 Compressed   payload binary stream:
    10001   00001 = match distance = 1 (referring to "q" from the previous   payload in section 4.3.3)
    1111111110   1000111101 = match length = 1024 + 573 = 1597

*Date format: YYYY/MM/DD

Show: