(ndis.h) NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 结构
NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO结构指定用于将 Internet 协议安全性 (IPsec) 任务从 TCP/IP 传输卸载到微型端口驱动程序的信息。
语法
typedef struct _NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO {
union {
struct {
NDIS_HANDLE OffloadHandle;
} Transmit;
struct {
USHORT SaDeleteReq : 1;
USHORT CryptoDone : 1;
USHORT NextCryptoDone : 1;
USHORT Pad : 13;
USHORT CryptoStatus;
} Receive;
};
} NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO, *PNDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO;
成员
Transmit
包含以下成员的 结构:
Transmit.OffloadHandle
出站安全关联的句柄 (只有一个 IPsec 有效负载的数据包的 SA) ,无论该有效负载是用于传输 (端到端) 连接还是隧道连接。
Receive
包含以下成员的 结构:
Receive.SaDeleteReq
USHORT 值,在设置时,指示 TCP/IP 传输应发出 OID_TCP_TASK_IPSEC_DELETE_SA OID 一次删除数据包接收的入站 SA,并再次删除与已删除的入站 SA 相对应的出站 SA。 网络接口卡 (NIC) 在收到相应的OID_TCP_TASK_IPSEC_DELETE_SA请求之前不得删除其中任一 SA。
Receive.CryptoDone
一个 USHORT 值,该值在设置时指示 NIC 对接收数据包中的至少一个 IPsec 有效负载执行 IPsec 检查。 清除此值时,表示 NIC 未对数据包执行 IPsec 检查。
Receive.NextCryptoDone
一个 USHORT 值,该值在设置时指示 NIC 对接收数据包的隧道和传输部分执行 IPsec 检查。 在这种情况下,还必须设置 CryptoDone。 仅当数据包同时具有隧道和传输 IPsec 有效负载时,才会设置 NextCryptoDone;否则,NextCryptoDone 设置为零。
Receive.Pad
为 NDIS 保留。
Receive.CryptoStatus
IPsec 检查 NIC 对接收数据包执行的结果。 此结果可描述为以下值之一:
注解
在 TCP/IP 传输将 NIC 将对其执行 IPsec 任务的发送数据包传递给 NIC 的微型端口驱动程序之前,传输会更新 与 NET_BUFFER_LIST 结构关联的 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 结构中的 IPsec 信息。
具体而言,TCP/IP 传输为 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 结构中的 OffloadHandle 成员提供值。 OffloadHandle 值指定只有一个 IPsec 有效负载的数据包的出站安全关联 (SA) 句柄,无论该有效负载是用于传输 (端到端) 安全关联还是隧道安全关联。 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 结构中提供的 OffloadHandle 值与 TCP/IP 传输在设置 OID_TCP_TASK_IPSEC_ADD_SA 请求微型端口驱动程序将出站 SA 添加到 NIC 时提供的 OffloadHandle 值相同。
在微型端口驱动程序指示具有一个或多个 IPsec 有效负载的接收数据包之前,驱动程序会更新与 NET_BUFFER_LIST 结构关联的 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 结构,如下所示:
- 如果 NIC 对数据包中的至少一个 IPsec 有效负载执行 IPsec 检查,微型端口驱动程序将设置 CryptoDone 成员,并通过在 CryptoStatus 成员中指定适当的值来指示校验和验证测试结果。
- 如果 NIC 对接收数据包的隧道和传输部分执行 IPsec 检查,微型端口驱动程序还会设置 NextCryptoDone 成员。 仅当数据包同时具有隧道和传输 IPsec 有效负载时,才会设置 NextCryptoDone;否则,NextCryptoDone 设置为零。
- 如果 NIC 未对数据包执行 IPsec 检查,则微型端口驱动程序不会设置 CryptoDone 或 NextCryptoDone ,并且不会提供 CryptoStatus 值。
若要设置和获取 IPsec 信息,请将 IPsecOffloadV1NetBufferListInfo 索引与 NET_BUFFER_LIST_INFO 宏一起使用。 NET_BUFFER_LIST_INFO 返回 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO 结构。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 NDIS 6.0 中受支持。 对于 NDIS 6.1 及更高版本,请使用 NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO。 |
标头 | ndis.h (包括 Ndis.h) |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈