SoHAttributeValue 공용 구조체

참고

네트워크 액세스 보호 플랫폼은 Windows 10 시작해서 사용할 수 없습니다.

SoHAttributeValue 공용 구조체는 SoHAttribute 구조체에서 형식 멤버의 내용을 정의합니다. SoHAttributeValue 공용 구조체의 구조체는 SoHAttribute 구조체의 형식 멤버에 지정된 SoHAttributeType에 의해 결정됩니다.

구문

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)

SoH 패킷을 생성한 SHA(시스템 상태 에이전트) 또는 SHV(시스템 상태 유효성 검사기)의 ID를 포함하는 고유한 SystemHealthEntityId입니다.

v4AddressesVal

case(sohAttributeTypeIpv4FixupServers)

NAP 시스템에서 사용 중인 수정 서버의 IPv4 주소입니다.

count

maxIpv4CountPerSoHAttribute 범위의 주소 멤버에 있는 IPv4 주소 수입니다.

addresses

IPv4 주소를 포함하는 Ipv4Address 구조체의 배열입니다.

v6AddressesVal

case(sohAttributeTypeIpv6FixupServers)

NAP 시스템에서 사용 중인 수정 서버의 IPv6 주소입니다.

count

maxIpv6CountPerSoHAttribute 범위 1의 주소 멤버에 있는 IPv4 주소 수입니다.

addresses

IPv4 주소를 포함하는 Ipv6Address 구조체의 배열입니다.

codesVal

case(sohAttributeTypeComplianceResultCodes, sohAttributeTypeErrorCodes)

클라이언트 또는 NAP 오류 상수의 애플리케이션 정의 규정 준수 결과 코드를 포함하는 ResultCodes 구조체입니다. SoH 패킷에는 이 TLV 또는 sohAttributeTypeFailureCategory TLV가 포함되어야 합니다.

dateTimeVal

case(sohAttributeTypeTimeOfLastUpdate, sohAttributeTypeSoHGenerationTime)

마지막 SoH 업데이트 시간 또는 SoH 생성 시간을 포함하는 FILETIME 구조체입니다.

vendorSpecificVal

case(sohAttributeTypeVendorSpecific)

공급업체에서 정의한 애플리케이션별 데이터입니다.

vendorId

SHA/SHV 쌍 ID를 정의하는 4바이트 식별자입니다. 처음 3바이트는 공급업체의 IETF 할당 SMI 코드이며 마지막 바이트는 구성 요소 자체를 식별합니다. SHA 또는 SHV를 구현할 때 NAP 공급업체 상수의 내부 Microsoft 시스템 상태 구성 요소에 할당된 ID 값을 사용하지 마세요.

size

0에서 (maxSoHAttributeSize - 4) 범위의 공급업체 데이터의 크기(바이트)입니다.

vendorSpecificData

네트워크 바이트 순서의 공급업체별 데이터에 대한 포인터입니다.

uint8Val

case(sohAttributeTypeHealthClass, sohAttributeTypeFailureCategory,sohAttributeTypeExtendedIsolationState)

HEALTHClassValue 또는 FailureCategory 값 또는 IsolationInfoEx 구조체로 NAP 구성 요소의 상태 클래스, 실패 범주 또는 확장된 격리 상태입니다.

octetStringVal

default

다음 특성의 값은 옥릿 문자열입니다.

  • sohAttributeTypeSoftwareVersion
  • sohAttributeTypeClientId
  • sohAttributeTypeProductName
  • sohAttributeTypeHealthClassStatus

정방향 호환성을 위해 인식할 수 없는 모든 특성이 옥트 문자열로 반환됩니다. 데이터는 네트워크 바이트 순서여야 합니다.

size

0에서 maxSoHAttributeSize까지의 데이터 크기(바이트)입니다.

data

8진수 문자열 값에 대한 포인터입니다.

실제 데이터 레이아웃

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

나머지 SoHAttributeTypes는 전적으로 SHA 및 SHV의 사용에 대한 규범적인 지침으로 사용됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2008 [데스크톱 앱만 해당]
헤더
NapProtocol.h
IDL
NapProtocol.idl

추가 정보

NAP 참조

NAP 구조체