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)
一个唯一 的 SystemHealthEntityId ,其中包含构造此 SoH 数据包的系统运行状况代理 (SHA) 或系统运行状况验证器 (SHV) 的 ID。
-
v4AddressesVal
-
case (sohAttributeTypeIpv4FixupServers)
NAP 系统使用的修复服务器的 IPv4 地址。
-
计数
-
地址成员在范围 1 到 maxIpv4CountPerSoHAttribute 的 IPv4 地址数。
-
addresses
-
包含 IPv4 地址的 Ipv4Address 结构的数组。
-
-
v6AddressesVal
-
case (sohAttributeTypeIpv6FixupServers)
NAP 系统使用的修复服务器的 IPv6 地址。
-
计数
-
地址成员中范围 1 到 maxIpv6CountPerSoHAttribute 的 IPv4 地址数。
-
addresses
-
包含 IPv4 地址的 Ipv6Address 结构的数组。
-
-
codesVal
-
case (sohAttributeTypeComplianceResultCodes, sohAttributeTypeErrorCodes)
一个 ResultCodes 结构,其中包含应用程序定义的客户端的符合性结果代码或 NAP 错误常量。 SoH 数据包必须包含此 TLV 或 sohAttributeTypeFailureCategory TLV。
-
dateTimeVal
-
case (sohAttributeTypeTimeOfLastUpdate, sohAttributeTypeSoHGenerationTime)
-
vendorSpecificVal
-
case (sohAttributeTypeVendorSpecific)
供应商定义的特定于应用程序的数据。
-
vendorId
-
定义 SHA/SHV 对 ID 的 4 字节标识符。 前 3 个字节是供应商的 IETF 分配的 SMI 代码,最后一个字节标识组件本身。 实现 SHA 或 SHV 时,请勿在 NAP 供应商常量上使用分配给内部 Microsoft 系统运行状况组件的 ID 值。
-
大小
-
供应商数据的大小(以字节为单位),范围为 0 到 (maxSoHAttributeSize - 4) 。
-
vendorSpecificData
-
指向按网络字节顺序表示的供应商特定数据的指针。
-
-
uint8Val
-
case (sohAttributeTypeHealthClass,sohAttributeTypeFailureCategory,sohAttributeTypeExtendedIsolationState)
NAP 组件的运行状况类、故障类别或扩展隔离状态,作为 HealthClassValue 或 FailureCategory 值或 IsolationInfoEx 结构。
-
octetStringVal
-
default
以下属性的值是八进制字符串:
- sohAttributeTypeSoftwareVersion
- sohAttributeTypeClientId
- sohAttributeTypeProductName
- sohAttributeTypeHealthClassStatus
为了向前兼容,所有无法识别的属性都以八进制字符串的形式返回。 数据 必须按网络字节顺序排列。
-
大小
-
范围 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 的其余部分纯粹用作用于 SHA 和 SHV 的规范性指南。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|
IDL |
|