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 Vista operating system

  • Windows Server 2008 operating system

  • 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

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.1:  The Microsoft SQM client uses the following URL to communicate the SQM partner name to the SQM server.

 http(s)://sqm.microsoft.com/sqm/%SQM-PARTNERNAME%/sqmserver.dll 

where %SQM-PARTNERNAME% is replaced with the actual partner name. The SQM partner name is known to both the SQM client and the SQM server.

<2> Section 2.2.4.1:  On Windows client implementations of SQM, the Signature value is set to 0x4D51534D.

<3> Section 2.2.4.1:  Windows client implementations of SQM using the following Flags bit positions:

Bit Position

Meaning

0

Debug SQM application

1

Reserved

2

SSL required for upload

3

Do not upload

4

Reserved

5

Reserved

6

Partial SQM session

7

SQM session from proxy

8

Reserved

9

SQM session end time indeterminate

10

SQM header only upload

<4> Section 2.2.4.1:  Windows client implementations of SQM use the following algorithm to set the DataChecksum value and the RawDataChecksum value.

 DWORD Checksum = 0
 FOR EACH BYTE b FROM SQM-Header.DataLength TO SQM-Header.ApplicationVersionLow 
 Checksum = (Checksum * 101) + b
 END FOR
 FOR EACH BYTE b IN SQM-Section-Data
 Checksum = (Checksum * 101) + b
 END FOR
 RETURN Checksum

<5> Section 2.2.6.1:  Microsoft SQM server implementations of A-SQM use the following algorithm to set the Checksum value:

 DWORD Checksum = 0
 FOR EACH BYTE b IN A-SQM Manifest Data 
 Checksum = (Checksum * 101) + b
 END FOR
 RETURN Checksum

<6> Section 2.2.6.3:  Microsoft server implementations of A-SQM set the Signature value to 0x414D5153.

<7> Section 3.1.5.3:  Windows client implementations of A-SQM are not available on Windows Vista and Windows Server 2008.

<8> Section 3.1.5.3.1:  Windows client implementations of A-SQM download a package that the Microsoft SQM server creates. The package contains an A-SQM download header as specified in section 2.2.6.1 within a compressed DLL file.

The DLL file contains a single resource named "ADAPTIVESQMANIFEST" with a resource type of "ASQMMANIFEST". The A-SQM manifest as specified in section 2.2.6.2 is contained within this DLL resource.

The DLL file (uncompressed) is signed by Microsoft. The Windows client implementations verify the file signature. The signature is verified by the WinVerifyTrust function as described in [MSDN-CAPI]. The ActionID used is WINTRUST_ACTION_GENERIC_VERIFY_V2.

Windows implementations of A-SQM use cabinet compression as described in [MSDN-CAB].

<9> Section 3.1.5.3.1:  The Microsoft implementation of A-SQM uses the URL to differentiate the SQM Partner A-SQM manifests. The URL form is:

 http://sqm.microsoft.com/%SQM-PARTNERNAME%/manifests/sqm%MANIFESTVERSION%.bin

where %SQM-PARTNERNAME% is replaced with the actual partner name and %MANIFESTVERSION% is replaced with the ManifestVersion value, in decimal form, as specified in section 2.2.4.1, and section 3.1.5.2.2. The SQM partner name is known to the SQM client and the SQM server.

<10> Section 3.3.1:  On Windows 8 and Windows 8.1, the proxy can be enabled by installing the Windows Feedback Forwarder. Windows Feedback Forwarder contains two settings. One setting configures the port number on which to receive SQM messages and the second setting configures proxy information so that the Windows Feedback Forwarder service can connect to the SQM service through a firewall. The Windows Feedback Forwarder service will not relay any messages unless a client is configured to send SQM data to the relay.