Freigeben über


SoHAttributeValue-Union

Hinweis

Die Netzwerkzugriffsschutzplattform ist ab Windows 10

Die SoHAttributeValue-Union definiert den Inhalt des Typmembers in einer SoHAttribute-Struktur. Die Struktur der SoHAttributeValue-Union wird durch den SoHAttributeType bestimmt, der im Typmember der SoHAttribute-Struktur angegeben ist.

Syntax

typedef union tagSoHAttributeValue {
  SystemHealthEntityId     idVal;
  struct tagIpv4Addresses {
    UINT16      count;
    Ipv4Address *addresses;
  } v4AddressesVal;
  struct tagIpv6Addresses {
    UINT16      count;
    Ipv6Address *addresses;
  } v6AddressesVal;
  ResultCodes              codesVal;
  FILETIME                 dateTimeVal;
  struct tagVendorSpecific {
    UINT32 vendorId;
    UINT16 size;
    BYTE   *vendorSpecificData;
  } vendorSpecificVal;
  UINT8                    uint8Val;
  struct tagOctetString {
    UINT16 size;
    BYTE   *data;
  } octetStringVal;
} SoHAttributeValue;

Member

idVal

case(sohAttributeTypeSystemHealthId)

Eine eindeutige SystemHealthEntityId , die die ID des SystemIntegritäts-Agents (SHA) oder des System Health Validator (SHV) enthält, der dieses SoH-Paket erstellt hat.

v4AddressesVal

case(sohAttributeTypeIpv4FixupServers)

Die IPv4-Adressen der vom NAP-System verwendeten Fixupserver.

count

Die Anzahl der IPv4-Adressen im Adresselement im Bereich 1 bis maxIpv4CountPerSoHAttribute.

addresses

Ein Array von Ipv4Address-Strukturen , die die IPv4-Adressen enthalten.

v6AddressesVal

case(sohAttributeTypeIpv6FixupServers)

Die IPv6-Adressen der vom NAP-System verwendeten Fixupserver.

count

Die Anzahl der IPv4-Adressen im Adresselement im Bereich 1 bis maxIpv6CountPerSoHAttribute.

addresses

Ein Array von Ipv6Address-Strukturen , die die IPv4-Adressen enthalten.

codesVal

case(sohAttributeTypeComplianceResultCodes, sohAttributeTypeErrorCodes)

Eine ResultCodes-Struktur , die entweder die von der Anwendung definierten Konformitätsergebniscodes des Clients oder NAP-Fehlerkonstanten enthält. Ein SoH-Paket muss diesen TLV oder den TLV sohAttributeTypeFailureCategory enthalten.

dateTimeVal

case(sohAttributeTypeTimeOfLastUpdate, sohAttributeTypeSoHGenerationTime)

Eine FILETIME-Struktur , die die Zeit des letzten SoH-Updates oder die SoH-Generierungszeit enthält.

vendorSpecificVal

case(sohAttributeTypeVendorSpecific)

Anwendungsspezifische Daten, die vom Anbieter definiert werden.

Vendorid

Ein 4-Byte-Bezeichner, der die SHA/SHV-Paar-ID definiert. Die ersten 3 Bytes sind der vom IETF zugewiesene SMI-Code des Anbieters, und das letzte Byte identifiziert die Komponente selbst. Verwenden Sie beim Implementieren eines SHA oder SHV nicht die ID-Werte, die internen Microsoft-Systemintegritätskomponenten für NAP-Anbieterkonstanten zugewiesen sind.

size

Die Größe der Anbieterdaten in Bytes im Bereich 0 bis (maxSoHAttributeSize - 4).

vendorSpecificData

Ein Zeiger auf die anbieterspezifischen Daten in Netzwerkbytereihenfolge.

uint8Val

case(sohAttributeTypeHealthClass, sohAttributeTypeFailureCategory,sohAttributeTypeExtendedIsolationState)

Die Integritätsklasse, Fehlerkategorie oder erweiterter Isolationsstatus einer NAP-Komponente als HealthClassValue - oder FailureCategory-Wert oder als IsolationInfoEx-Struktur .

octetStringVal

default

Die Werte der folgenden Attribute sind Oktettzeichenfolgen:

  • sohAttributeTypeSoftwareVersion
  • sohAttributeTypeClientId
  • sohAttributeTypeProductName
  • sohAttributeTypeHealthClassStatus

Aus Gründen der Vorwärtskompatibilität werden alle nicht erkannten Attribute als Oktettzeichenfolgen zurückgegeben. Die Daten müssen sich in der Reihenfolge des Netzwerkbytes befinden.

size

Die Größe von Daten in Bytes im Bereich 0 bis maxSoHAttributeSize.

data

Ein Zeiger auf den Oktettzeichenfolgenwert.

Tatsächliches Datenlayout

Aufgrund der Art der SDK-Veröffentlichungsumgebung sind Vereinigungen in Syntaxblöcken nicht eindeutig dargestellt. Hier sehen Sie die tatsächliche Syntax aus der Headerdatei NapProtocol.h.

#include <windows.h>

typedef [switch_type(SoHAttributeType)] 
   union tagSoHAttributeValue
   {
      [case(sohAttributeTypeSystemHealthId)]
         SystemHealthEntityId idVal;
   
      [case(sohAttributeTypeIpv4FixupServers)]
         struct tagIpv4Addresses
         {
            [range(1, maxIpv4CountPerSoHAttribute)] 
               UINT16 count;
            [size_is(count)] Ipv4Address* addresses;
         } v4AddressesVal;

      [case(sohAttributeTypeIpv6FixupServers)]
         struct tagIpv6Addresses
         {
            [range(1, maxIpv6CountPerSoHAttribute)]
               UINT16 count;
            [size_is(count)] Ipv6Address* addresses;
         } v6AddressesVal;

      [case(sohAttributeTypeComplianceResultCodes, 
            sohAttributeTypeErrorCodes)]
         ResultCodes codesVal;

      [case(sohAttributeTypeTimeOfLastUpdate, 
            sohAttributeTypeSoHGenerationTime)]
         FILETIME dateTimeVal;

      [case(sohAttributeTypeVendorSpecific)]
         struct tagVendorSpecific
         {
            UINT32 vendorId;
            [range(0, maxSoHAttributeSize - 4)] 
               UINT16 size;
            [size_is(size)] BYTE* vendorSpecificData;
         } vendorSpecificVal;

      [case(sohAttributeTypeHealthClass, 
            sohAttributeTypeFailureCategory,
            sohAttributeTypeExtendedIsolationState)]
         UINT8 uint8Val;

      [default]
         struct tagOctetString
         {
            [range(0, maxSoHAttributeSize)] UINT16 size;
            [size_is(size)] BYTE* data;
         } octetStringVal;

   } SoHAttributeValue;
};

Bemerkungen

Diese Attributtypen werden vom NAP-System verwendet:

  • sohAttributeTypeSystemHealthId
  • sohAttributeTypeIpv4FixupServers
  • sohAttributeTypeIpv6FixupServers
  • sohAttributeTypeComplianceResultCodes
  • sohAttributeTypeFailureCategory

Die restlichen SoHAttributeTypes sind rein als präskriptive Anleitung für die Verwendung durch SHAs und SHVs gedacht.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 [nur Desktop-Apps]
Header
NapProtocol.h
IDL
NapProtocol.idl

Weitere Informationen

NAP-Referenz

NAP-Strukturen