IPSEC_OFFLOAD_V2_ADD_SA_EX结构(ndis.h)
[IPsec 任务卸载功能已弃用,不应使用。]
IPSEC_OFFLOAD_V2_ADD_SA_EX结构定义微型端口驱动程序应添加到 NIC 的安全关联(SA)的相关信息。
语法
typedef struct _IPSEC_OFFLOAD_V2_ADD_SA_EX {
NDIS_OBJECT_HEADER Header;
ULONG NumExtHdrs;
ULONG Flags;
union {
struct {
IPAddr SrcAddr;
IPAddr DestAddr;
} IPv4Endpoints;
struct {
UCHAR SrcAddr[16];
UCHAR DestAddr[16];
} IPv6Endpoints;
};
NDIS_HANDLE OffloadHandle;
ULONG UdpEspEncapsulation;
IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS];
ULONG KeyLength;
ULONG KeyOffset;
NDIS_SWITCH_PORT_ID SourceSwitchPortId;
USHORT VlanId;
} IPSEC_OFFLOAD_V2_ADD_SA_EX, *PIPSEC_OFFLOAD_V2_ADD_SA_EX;
成员
Header
IPSEC_OFFLOAD_V2_ADD_SA_EX结构的 NDIS_OBJECT_HEADER 结构。 将 标头 指定为 NDIS_OBJECT_TYPE_DEFAULT、Revision 成员NDIS_IPSEC_OFFLOAD_V2_ADD_SA_EX_REVISION_1以及 大小 成员NDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_EX_REVISION_1的结构 类型 成员。
NumExtHdrs
IPsec 扩展标头的数目。 此成员可以是以下值之一。
安全性类型 | 扩展标头 |
---|---|
仅 AH 身份验证 | 1 |
仅 ESP 身份验证 | 1 |
仅 ESP 加密 | 1 |
ESP 身份验证和加密 | 1 |
AH 加 ESP 身份验证和加密 | 2 |
UDP ESP | 1 |
Flags
指示要添加的 SA 是入站还是出站 SA 的位掩码,如下所示:
IPSEC_OFFLOAD_V2_IPv6
如果设置了此标志,则地址为 IPv6。 否则,地址为 IPv4
IPSEC_OFFLOAD_V2_INBOUND
如果设置了此标志,则 SA 为入站。 否则,SA 为出站。
IPv4Endpoints
IPv4 终结点地址。 此结构包含以下成员:
IPv4Endpoints.SrcAddr
源主机的 IPv4 地址(发送数据包的主机)。
IPv4Endpoints.DestAddr
目标主机的 IPv4 地址(接收数据包的主机)。
IPv6Endpoints
IPv6 终结点地址。 此结构包含以下成员:
IPv6Endpoints.SrcAddr[16]
源主机的 IPv6 地址(发送数据包的主机)。
IPv6Endpoints.DestAddr[16]
目标主机的 IPv6 地址(接收数据包的主机)。
OffloadHandle
新创建的 SA 的句柄。 微型端口驱动程序在完成之前提供此句柄
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX 请求。 TCP/IP 传输必须在
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO 或将发送数据包传递到微型端口驱动程序之前, NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO 结构。 使用 删除 SA 时,TCP/IP 传输还必须指定此句柄
OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA 请求。
UdpEspEncapsulation
UDP ESP 封装类型。 此成员可以是以下一个或多个标志:
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE
不使用 UDP 封装。
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT
ESP 封装的传输模式数据包由 UDP 封装。
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL
数据包的隧道模式部分是 UDP 封装的。 数据包的传输模式部分未封装 UDP,并且不受 ESP 保护。
IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL
数据包的隧道模式部分是 UDP 封装的。 数据包的传输模式部分不是 UDP 封装的,而是受 ESP 保护的。
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL
数据包的隧道模式部分未封装 UDP。 数据包的传输模式部分是 UDP 封装和 ESP 保护的。
SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS]
包含两个元素的数组,其中包含有关 SA 的 IPsec作(AH、ESP 或两者)的信息。 NumExtHdrs 成员中指定提供的元素数。 每个 IPsec作的信息的格式设置为 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 结构,如下所述。
TCP/IP 传输指定 SecAssoc 缓冲区中的一两个IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION结构。 每个IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION结构都指示要使用的结构中指定的 SA 的作身份验证或加密/解密类型。 数组中IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION结构的顺序指示微型端口驱动程序应为每个 SA 执行作的顺序。 仅支持一个作组合:加密/解密(ESP)后跟身份验证(AH)。
KeyLength
KeyOffset处缓冲区的长度(以字节为单位)。
KeyOffset
偏移量(以字节为单位)从IPSEC_OFFLOAD_V2_ADD_SA_EX结构的开头到可变长度数组的开头,该数组包含 SecAssoc中指定的 SA 的键。 如果加密算法和身份验证算法都由 EncryptionAlgorithm 和 AuthenticationAlgorithm 成员指定 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 结构,KeyOffset 的缓冲区包含另一个密钥信息。 键的开头和长度由 IPSEC_OFFLOAD_V2_ALGORITHM_INFO 结构的 KeyOffsetBytes 和 KeyLength 分别 成员。
SourceSwitchPortId
保留。
VlanId
保留。
言论
IPSEC_OFFLOAD_V2_ADD_SA_EX结构指定应添加的安全 SA。 IPSEC_OFFLOAD_V2_ADD_SA_EX结构与
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX OID。
IPSEC_OFFLOAD_V2_ADD_SA_EX结构指定适用于 SA 的源和目标以及 IP 协议。 此筛选器与传输模式连接相关,即两个主机之间的端到端连接。 如果通过隧道建立指定的连接,则会指定隧道的源地址和目标地址。
如果成员设置为零,则此参数不用于筛选指定 SA 的数据包。 例如,如果 SrcAddr 设置为零,则指定的 SA 可以应用于包含任何源地址的数据包。 如果所有筛选器参数都设置为零,则指定的 SA 适用于将任何类型的数据包发送到任何目标主机的任何源主机。
此结构几乎与以前的版本相同,IPSEC_OFFLOAD_V2_ADD_SA。 Next 和 KeyData 成员已删除。 添加了 KeyOffset、SourceSwitchPortId 和 VlanId 成员。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | NDIS 6.30 及更高版本中受支持。 |
标头 | ndis.h (包括 Ndis.h) |