Поделиться через


Объединение SoHAttributeValue

Примечание

Платформа защиты доступа к сети недоступна начиная с Windows 10

Объединение SoHAttributeValue определяет содержимое элемента типа в структуре SoHAttribute . Структура объединения SoHAttributeValue определяется типом SoHAttributeType , указанным в элементе типа структуры SoHAttribute .

Синтаксис

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;

Члены

idVal

case(sohAttributeTypeSystemHealthId)

Уникальный идентификатор SystemHealthEntityId , содержащий идентификатор агента работоспособности системы (SHA) или средства проверки работоспособности системы (SHV), создав этот пакет SoH .

v4AddressesVal

case(sohAttributeTypeIpv4FixupServers)

IPv4-адреса серверов исправления, используемых системой NAP.

count

Число адресов IPv4 в элементе addresss в диапазоне от 1 до maxIpv4CountPerSoHAttribute.

addresses

Массив структур Ipv4Address , содержащих IPv4-адреса.

v6AddressesVal

case(sohAttributeTypeIpv6FixupServers)

IPv6-адреса серверов исправления, используемых системой NAP.

count

Число адресов IPv4 в элементе addresss в диапазоне от 1 до maxIpv6CountPerSoHAttribute.

addresses

Массив структур Ipv6Address , содержащих IPv4-адреса.

codesVal

case(sohAttributeTypeComplianceResultCodes, sohAttributeTypeErrorCodes)

Структура ResultCodes , содержащая коды результатов соответствия, определенные приложением, клиента или константы ошибок NAP. Пакет SoH должен содержать этот TLV или TLV sohAttributeTypeFailureCategory .

dateTimeVal

case(sohAttributeTypeTimeOfLastUpdate, sohAttributeTypeSoHGenerationTime)

Структура FILETIME , содержащая время последнего обновления SoH или время создания SoH .

vendorSpecificVal

case(sohAttributeTypeVendorSpecific)

Данные конкретного приложения, определенные поставщиком.

vendorId

4-байтовый идентификатор, определяющий идентификатор пары SHA/SHV. Первые 3 байта — это назначенный IETF код SMI поставщика, а последний байт идентифицирует сам компонент. При реализации SHA или SHV не используйте значения идентификаторов, назначенные внутренним компонентам работоспособности системы Майкрософт в константах поставщика NAP.

size

Размер данных поставщика в байтах в диапазоне от 0 до (maxSoHAttributeSize – 4).

vendorSpecificData

Указатель на данные конкретного поставщика в сетевом порядке байтов.

uint8Val

case(sohAttributeTypeHealthClass, sohAttributeTypeFailureCategory,sohAttributeTypeExtendedIsolationState)

Класс работоспособности, категория сбоя или расширенное состояние изоляции компонента NAP в виде значения HealthClassValue или FailureCategory или структуры IsolationInfoEx .

octetStringVal

default

Следующие значения атрибутов являются строками октетов:

  • sohAttributeTypeSoftwareVersion
  • sohAttributeTypeClientId
  • sohAttributeTypeProductName
  • sohAttributeTypeHealthClassStatus

Для обеспечения обратной совместимости все нераспознанные атрибуты возвращаются в виде строк октета. данные должны быть в порядке байтов сети.

size

Размер данных в байтах в диапазоне от 0 до maxSoHAttributeSize.

data

Указатель на строковое значение октета.

Фактический макет данных

Из-за характера среды публикации пакета SDK объединения не представлены четко в блоках синтаксиса. Ниже приведен фактический синтаксис файла заголовка 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;
};

Комментарии

Система NAP потребляет следующие типы атрибутов:

  • sohAttributeTypeSystemHealthId
  • sohAttributeTypeIpv4FixupServers
  • sohAttributeTypeIpv6FixupServers
  • sohAttributeTypeComplianceResultCodes
  • sohAttributeTypeFailureCategory

Остальные типы SoHAttributeType предназначены исключительно как предписывающее руководство по использованию shAs и SHV.

Требования

Требование Значение
Минимальная версия клиента
Windows Vista [только классические приложения]
Минимальная версия сервера
Windows Server 2008 [только классические приложения]
Заголовок
NapProtocol.h
IDL
NapProtocol.idl

См. также раздел

Справочник по NAP

Структуры NAP