2.2.1 WSHA SoH

The following are the constituents of the WSHA SoH packet. All of the values MUST be present, unless otherwise noted. The values MUST be in this order. TLVs 5, 6, 8, 9, 11, and 12 MUST have at least one instance. They MAY have multiple instances depending on how many firewall, antivirus, and antispyware products are installed. The M and R bits are defined in the Statement of Health for Network Access Protection (NAP) Protocol [MS-SOH] and are ignored by the WSHV upon receipt. All TLV values are sent in network byte order, which is big-endian, except for the Flag02, Version03, Security_Updates_DurationSinceLastSynch17, and Security_Updates_UpdatesFlag19 fields, which are sent in machine byte order and are little-endian.


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

M01

R01

TLV_Type01

Length01

NAPSystemHealthID01

M02

R02

TLV_Type02

Length02

Flag02

...

M03

R03

TLV_Type03

Length03

Version03

...

M04

R04

TLV_Type04

Length04

Firewall_HealthClassID04

M05

R05

TLV_Type05

Length05

...

Firewall_ProductName05 (variable)

...

M06

R06

TLV_Type06

Length06

Firewall_ClientStatusCode06

M07

R07

TLV_Type07

Length07

Antivirus_HealthClassID07

M08

R08

TLV_Type08

Length08

...

Antivirus_ProductName08 (variable)

...

M09

R09

TLV_Type09

Length09

Antivirus_ClientStatusCode09

M10

R10

TLV_Type10

Length10

Antispyware_HealthClassID10

M11

R11

TLV_Type11

Length11

...

Antispyware_ProductName11 (variable)

...

M12

R12

TLV_Type12

Length12

Antispyware_ClientStatusCode12

M13

R13

TLV_Type13

Length13

Automatic_Updates_HealthClassID13

M14

R14

TLV_Type14

Length14

...

Automatic_Updates_ClientStatusCode14

...

M15

R15

TLV_Type15

Length15

...

Security_Updates_HealthClassID15

M16

R16

TLV_Type16

Length16

Security_Updates_ClientStatusCode16

...

M17 (optional)

R17 (optional)

TLV_Type17 (optional)

Length17 (optional)

Security_Updates_DurationSinceLastSynch17 (optional)

...

...

M18 (optional)

R18 (optional)

TLV_Type18 (optional)

Length18 (optional)

Security_Updates_WSUSServerName18 (variable)

...

M19 (optional)

R19 (optional)

TLV_Type19 (optional)

Length19 (optional)

Security_Updates_UpdatesFlag19 (optional)

...

M01 (1 bit): The M bit MUST be set to zero.

 

R01 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type01 (14 bits): A 14-bit unsigned integer that MUST be set to 2.

 

Length01 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (4) in bytes of the NAPSystemHealthID field.

 

NAPSystemHealthID01 (4 bytes): A 32-bit unsigned integer, as specified in section 2.2.3.

M02 (1 bit): The M bit MUST be set to zero.

 

R02 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type02 (14 bits): A 14-bit unsigned integer that MUST be set to 7.

 

Length02 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (8) in bytes of the Flag field.

 

Flag02 (8 bytes): Eight bytes, as specified in section 2.2.4.

M03 (1 bit): The M bit MUST be set to zero.

 

R03 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type03 (14 bits): A 14-bit unsigned integer that MUST be set to 7.

 

Length03 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (8) in bytes of the Version field.

 

Version03 (8 bytes): Eight bytes, as specified in section 2.2.5.

M04 (1 bit): The M bit MUST be set to zero.

 

R04 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type04 (14 bits): A 14-bit unsigned integer that MUST be set to 8.

 

Length04 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (1) in bytes of the Firewall_HealthClassID field.

 

Firewall_HealthClassID04 (1 byte): An 8-bit unsigned integer, as specified in section 2.2.6.

M05 (1 bit): The M bit MUST be set to zero.

 

R05 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type05 (14 bits): A 14-bit unsigned integer that MUST be set to 10.

 

Length05 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length in bytes of the Firewall_ProductName field.

Firewall_ProductName05 (variable): A string, as specified in section 2.2.7.

M06 (1 bit): The M bit MUST be set to zero.

 

R06 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type06 (14 bits): A 14-bit unsigned integer that MUST be set to 11.

 

Length06 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (4) in bytes of the Firewall_ClientStatusCode field.

 

Firewall_ClientStatusCode06 (4 bytes): A DWORD, as specified in section 2.2.8.

M07 (1 bit): The M bit MUST be set to zero.

 

R07 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type07 (14 bits): A 14-bit unsigned integer that MUST be set to 8.

 

Length07 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (1) in bytes of the Antivirus_HealthClassID field.

 

Antivirus_HealthClassID07 (1 byte): An 8-bit unsigned integer, as specified in section 2.2.6.

M08 (1 bit): The M bit MUST be set to zero.

 

R08 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type08 (14 bits): A 14-bit unsigned integer that MUST be set to 10.

 

Length08 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length of the string in bytes of the Antivirus_ProductName field.

Antivirus_ProductName08 (variable): A string, as specified in section 2.2.7.

M09 (1 bit): The M bit MUST be set to zero.

 

R09 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type09 (14 bits): A 14-bit unsigned integer that MUST be set to 11.

 

Length09 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (4) in bytes of the Antivirus_ClientStatusCode field.

 

Antivirus_ClientStatusCode09 (4 bytes): A DWORD, as specified in section 2.2.8.

M10 (1 bit): The M bit MUST be set to zero.

 

R10 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type10 (14 bits): A 14-bit unsigned integer that MUST be set to 8.

 

Length10 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (1) in bytes of the Antispyware_HealthClassID field.

 

Antispyware_HealthClassID10 (1 byte): An 8-bit unsigned integer, as specified in section 2.2.6.

M11 (1 bit): The M bit MUST be set to zero.

 

R11 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type11 (14 bits): A 14-bit unsigned integer that MUST be set to 10.

 

Length11 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length of the string in bytes of the Antispyware_ProductName field.

Antispyware_ProductName11 (variable): A string, as specified in section 2.2.7.

M12 (1 bit): The M bit MUST be set to zero.

 

R12 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type12 (14 bits): A 14-bit unsigned integer that MUST be set to 11.

 

Length12 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (4) in bytes of the Antispyware_ClientStatusCode field.

 

Antispyware_ClientStatusCode12 (4 bytes): A DWORD, as specified in section 2.2.8.

M13 (1 bit): The M bit MUST be set to zero.

 

R13 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type13 (14 bits): A 14-bit unsigned integer that MUST be set to 8.

 

Length13 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (1) in bytes of the Automatic_Updates_HealthClassID field.

 

Automatic_Updates_HealthClassID13 (1 byte): An 8-bit unsigned integer, as specified in section 2.2.6.

M14 (1 bit): The M bit MUST be set to zero.

 

R14 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type14 (14 bits): A 14-bit unsigned integer that MUST be set to 11.

 

Length14 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (4) in bytes of the Automatic_Updates_ClientStatusCode field.

 

Automatic_Updates_ClientStatusCode14 (4 bytes): A DWORD, as specified in section 2.2.8.

M15 (1 bit): The M bit MUST be set to zero.

 

R15 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type15 (14 bits): A 14-bit unsigned integer that MUST be set to 8.

 

Length15 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (1) in bytes of the Security_Updates_HealthClassID field.

 

Security_Updates_HealthClassID15 (1 byte): An 8-bit unsigned integer, as specified in section 2.2.6.

M16 (1 bit): The M bit MUST be set to zero.

 

R16 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type16 (14 bits): A 14-bit unsigned integer that MUST be set to 11.

 

Length16 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (4) in bytes of the Security_Updates_ClientStatusCode field.

 

Security_Updates_ClientStatusCode16 (4 bytes): A DWORD, as specified in section 2.2.8.

M17 (1 bit): The M bit MUST be set to zero.

 

R17 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type17 (14 bits): A 14-bit unsigned integer that MUST be set to 7.

 

Length17 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (8) in bytes of the Security_Updates_DurationSinceLastSynch field.

 

Security_Updates_DurationSinceLastSynch17 (8 bytes): Eight bytes, as specified in section 2.2.9. Not used if Error is returned in the Security_Updates_ClientStatusCode (see section 2.2.8).

M18 (1 bit): The M bit MUST be set to zero.

 

R18 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type18 (14 bits): A 14-bit unsigned integer that MUST be set to 7.

 

Length18 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length of the string in bytes of the Security_Updates_WSUSServerName field.

Security_Updates_WSUSServerName18 (variable): Four bytes followed by a variable-length string, as specified in section 2.2.10. Not used if Error is returned in the Security_Updates_ClientStatusCode (see section 2.2.8).

M19 (1 bit): The M bit MUST be set to zero.

 

R19 (1 bit): The R bit is reserved, and MUST be set to zero when sent and ignored on receipt.

 

TLV_Type19 (14 bits): A 14-bit unsigned integer that MUST be set to 7.

 

Length19 (2 bytes): A 16-bit unsigned integer in network-byte order that MUST indicate the length (8) in bytes of the Security_Updates_UpdatesFlag field.

 

Security_Updates_UpdatesFlag19 (8 bytes): Eight bytes, as specified in section 2.2.11. Not used if Error is returned in the Security_Updates_ClientStatusCode (see section 2.2.8).

Note  If Security_Updates_ClientStatusCode is an error, TLVs 17, 18, and 19 will not be present.

 
Page view tracker