6 Appendix A: Product Behavior

The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include updates to those products.

  • Windows 7 operating system

  • Windows Server 2008 R2 operating system

  • Windows 8 operating system

  • Windows Server 2012 operating system

  • Windows 8.1 operating system

  • Windows Server 2012 R2 operating system

  • Windows 10 operating system

  • Windows Server 2016 operating system

  • Windows Server 2019 operating system

  • Windows Server 2022 operating system

  • Windows 11 operating system

  • Windows Server 2025 operating system

Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base (KB) number appears with a product name, the behavior changed in that update. The new behavior also applies to subsequent updates unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.

Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription.

<1> Section 2.2.2.2: The following codecs are supported by default on Windows, which includes support for audio input redirection. Unless otherwise specified, information about these codecs can be found in [RFC2361].

Codec name

Format tag

Microsoft PCM

WAVE_FORMAT_PCM

0x0001

Microsoft Adaptive PCM

WAVE_FORMAT_ADPCM

0x0002

Microsoft ALAW

WAVE_FORMAT_ALAW

0x0006

Microsoft G.723

WAVE_FORMAT_MSG723

0x0042

Microsoft GSM

WAVE_FORMAT_GSM610

0x0031

Microsoft MULAW

WAVE_FORMAT_MULAW

0x0007

Microsoft AAC

Not supported on Windows 7 and Windows Server 2008 R2

WAVE_FORMAT_AAC

0xa106

Microsoft Implementations deviate from the GSM standard [ETSI-GSM] while bitpacking coefficients, as described by the following example:

 ITU-T Standard Implementation of GSM 610
     if (((*c >> 4) & 0x0F) != GSM_MAGIC) return -1;
     LARc[1]  = (*c++ & 0xF) << 2;                  /* 1 */
     LARc[1] |= (*c >> 6) & 0x3;
     LARc[2]  = *c++ & 0x3F;
     LARc[3]  = (*c >> 3) & 0x1F;
     LARc[4]  = (*c++ & 0x7) << 2;
     LARc[4] |= (*c >> 6) & 0x3;
     LARc[5]  = (*c >> 2) & 0xF;
     LARc[6]  = (*c++ & 0x3) << 2;
     LARc[6] |= (*c >> 6) & 0x3;
     LARc[7]  = (*c >> 3) & 0x7;
     LARc[8]  = *c++ & 0x7;
  
 Microsoft Implementaion of GSM 610
     LAR[1] =  (ab[0] & 0x3F);
     LAR[2] = ((ab[0] & 0xC0) >> 6) | ((ab[1] & 0x0F) << 2);
     LAR[3] = ((ab[1] & 0xF0) >> 4) | ((ab[2] & 0x01) << 4);
     LAR[4] = ((ab[2] & 0x3E) >> 1);
     LAR[5] = ((ab[2] & 0xC0) >> 6) | ((ab[3] & 0x03) << 2);
     LAR[6] = ((ab[3] & 0x3C) >> 2);
     LAR[7] = ((ab[3] & 0xC0) >> 6) | ((ab[4] & 0x01) << 2);
     LAR[8] = ((ab[4] & 0x0E) >> 1);

The ITU implementation is Most Significant Bit (MSB) to Least Significant Bit (LSB). The Microsoft Implementation is LSB to MSB. The following coefficients are represented as MSB to LSB. The first line is the bit position in the actual byte, the second line is the coefficient index, and the third line is the bit position of the coefficients.

 ITU:
              
 BYTE 0            BYTE 1            BYTE 2            BYTE 3
 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0
         1 1 1 1   1 1 2 2 2 2 2 2   3 3 3 3 3 4 4 4   4 4 ...
         5 4 3 2   1 0 5 4 3 2 1 0   4 3 2 1 0 4 3 2   1 0 ...
  
 MS:
              
 BYTE 3            BYTE 2            BYTE 1            BYTE 0
 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0 | 7 6 5 4 3 2 1 0
                   ... 4 4 4 4 4 3   3 3 3 3 2 2 2 2   2 2 1 1 1 1 1 1
                   ... 4 3 2 1 0 4   3 2 1 0 5 4 3 2   1 0 5 4 3 2 1 0

<2> Section 3.3.2: Servers implemented for Windows will wait 5 seconds after sending a Version PDU. If the Version PDU from the client is not received within this time, the server terminates the protocol.

<3> Section 3.3.2: Servers implemented for Windows will wait 5 seconds after sending a Sound Formats PDU. If the Sound Formats PDU from the client is not received within this time, the server terminates the protocol.

<4> Section 3.3.2: Servers implemented for Windows will wait 5 seconds after sending an Open PDU. If the Open Reply PDU from the client is not received within this time, the server terminates the protocol.