(ndis.h) IPSEC_OFFLOAD_V2_ADD_SA_EX 结构

[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结构。 将 Header 指定的结构的 Type 成员设置为 NDIS_OBJECT_TYPE_DEFAULT,将 Revision 成员设置为 NDIS_IPSEC_OFFLOAD_V2_ADD_SA_EX_REVISION_1,并将 Size 成员设置为 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 还是出站 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 (AH、ESP 或两者) 的 IPsec 操作的信息。 提供的元素数在 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 键的可变长度数组开头的偏移量(以字节为单位)。 如果加密算法和身份验证算法都由 的 EncryptionAlgorithmAuthenticationAlgorithm 成员指定 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 结构中, KeyOffset 处的缓冲区包含一个后跟另一个的密钥信息。 密钥的开头和长度由 分别IPSEC_OFFLOAD_V2_ALGORITHM_INFO 结构的 KeyOffsetBytesKeyLength 成员。

SourceSwitchPortId

保留。

VlanId

保留。

注解

IPSEC_OFFLOAD_V2_ADD_SA_EX结构指定应添加的安全 SA。 IPSEC_OFFLOAD_V2_ADD_SA_EX 结构与
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX 老。

IPSEC_OFFLOAD_V2_ADD_SA_EX结构指定了源和目标,以及应用 SA 的 IP 协议。 此筛选器适用于传输模式连接,即两个主机之间的端到端连接。 如果指定的连接是通过隧道建立的,则指定隧道的源地址和目标地址。

如果成员设置为零,则不使用该参数来筛选指定 SA 的数据包。 例如,如果 SrcAddr 设置为零,则指定的 SA 可以应用于包含任何源地址的数据包。 如果所有筛选器参数都设置为零,则指定的 SA 将应用于向任何目标主机发送任何类型的数据包的任何源主机。

此结构几乎与以前的版本相同, IPSEC_OFFLOAD_V2_ADD_SA。 已删除 NextKeyData 成员。 已添加 KeyOffsetSourceSwitchPortIdVlanId 成员。

要求

要求
最低受支持的客户端 在 NDIS 6.30 及更高版本中受支持。
标头 ndis.h (包括 Ndis.h)

另请参阅

IPSEC_OFFLOAD_V2_ADD_SA

IPSEC_OFFLOAD_V2_ALGORITHM_INFO IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO NDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFO

NDIS_OBJECT_HEADER

OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA_EX OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA