IPSEC_OFFLOAD_V2_ADD_SA_EX結構(ndis.h)
[IPsec 工作卸除功能已被取代,不應使用。]
IPSEC_OFFLOAD_V2_ADD_SA_EX 結構會定義迷你埠驅動程序應該新增至 NIC 之安全性關聯的相關信息。
語法
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 指定為 NDIS_OBJECT_TYPE_DEFAULT 的 Type 成員、將 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,如下所示:
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 的 operation--authentication 或 encryption/decryption-類型。 陣列中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) |