次の方法で共有


SoHAttributeValue 共用体

Note

ネットワーク アクセス保護プラットフォームは、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 パケットを構築した System Health Agent (SHA) または System Health Validator (SHV) の ID を含む一意の SystemHealthEntityId

v4AddressesVal

case(sohAttributeTypeIpv4FixupServers)

NAP システムで使用されている修正サーバーの IPv4 アドレス。

count

1 から maxIpv4CountPerSoHAttribute までのアドレス メンバー内の IPv4 アドレスの数。

addresses

IPv4 アドレスを含む Ipv4Address 構造体の配列。

v6AddressesVal

case(sohAttributeTypeIpv6FixupServers)

NAP システムで使用されている修正サーバーの IPv6 アドレス。

count

1 から maxIpv6CountPerSoHAttribute までのアドレス メンバー内の 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

オクテット文字列値へのポインター。

実際のデータ レイアウト

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 構造体