共用方式為


NDIS_IPSEC_OFFLOAD_V2 結構 (ntddndis.h)

[IPsec 工作卸除功能已被取代,不應使用。

NDIS_IPSEC_OFFLOAD_V2 結構提供 (IPsec) 第 2 版工作卸除結構 NDIS_OFFLOAD 中因特網通訊協定安全性的相關信息。

語法

typedef struct _NDIS_IPSEC_OFFLOAD_V2 {
  ULONG   Encapsulation;
  BOOLEAN IPv6Supported;
  BOOLEAN IPv4Options;
  BOOLEAN IPv6NonIPsecExtensionHeaders;
  BOOLEAN Ah;
  BOOLEAN Esp;
  BOOLEAN AhEspCombined;
  BOOLEAN Transport;
  BOOLEAN Tunnel;
  BOOLEAN TransportTunnelCombined;
  BOOLEAN LsoSupported;
  BOOLEAN ExtendedSequenceNumbers;
  ULONG   UdpEsp;
  ULONG   AuthenticationAlgorithms;
  ULONG   EncryptionAlgorithms;
  ULONG   SaOffloadCapacity;
} NDIS_IPSEC_OFFLOAD_V2, *PNDIS_IPSEC_OFFLOAD_V2;

成員

Encapsulation

IPsec 卸除支援的 MAC 封裝類型。 如需此成員的詳細資訊,請參閱下列一節。

IPv6Supported

如果支援 IPv6 流量上的 IPsec 卸除處理,則 BOOLEAN 值會設定為 TRUE 。 否則,此成員為 FALSE

IPv4Options

如果 NIC 支援 IPsec 卸載具有 IPv4 選項之封包的 IPsec 卸除,則為 BOOLEAN 值。 否則,此成員為 FALSE

IPv6NonIPsecExtensionHeaders

如果 NIC 除了 IPsec 標頭之外,還支援非 IPsec IPv6 擴充標頭的封包 IPsec 卸除處理,則 BOOLEAN 值會設定為 TRUE 。 否則,此成員為 FALSE

Ah

如果 NIC 可以在傳送和接收包含驗證標頭的封包 (AH) 安全性承載時執行 IPsec 卸除作業,則 BOOLEAN 值會設定為 TRUE 。 否則,此成員為 FALSE

Esp

如果 NIC 可以在傳送和接收包含封裝安全性承載的封包 (ESP) 上執行 IPsec 卸除作業,則 BOOLEAN 值會設定為 TRUE 。 否則,此成員為 FALSE

AhEspCombined

如果 NIC 可以在傳送和接收包含 AH 承載和 ESP 承載的封包上執行 IPsec 卸載作業,則 BOOLEAN 值會設定為 TRUE 。 否則,此成員為 FALSE

Transport

如果 NIC 可以處理傳送和接收封包之傳輸模式部分的安全性承載,則 BOOLEAN 值會設定為 TRUE 。 (封包的傳輸模式部分與端對端連線有關。) 否則,此成員為 FALSE

Tunnel

如果 NIC 可以處理傳送和接收封包之通道模式部分的安全性承載,則 BOOLEAN 值會設定為 TRUE 。 (封包的通道模式部分與通道連線有關。) 否則,此成員為 FALSE

注意 當 IPsec 層透過 IPsec 工作卸除介面傳送通道封包時,IPsec 層可確保不會針對這些封包使用大型傳送卸除 (LSO) 。
 

TransportTunnelCombined

如果 NIC 可以同時處理傳輸模式部分和傳送和接收封包的通道模式部分的安全性承載,則 BOOLEAN 值會設定為 TRUE 。 否則,此成員為 FALSE。 封包的傳輸模式部分與端對端連線有關。 封包的通道模式部分與通道連線有關。

LsoSupported

布爾值,如果 NIC 支援大型傳送卸除 (LSO) ,則設定為 TRUE 。 否則,此成員為 FALSE。 請注意,NIC 的 LSO 功能是在 NDIS_OFFLOAD 結構的 LsoV1LsoV2 成員中指定。 LsoSupported 旗標表示如果連線受到 IPsec 保護,這些成員中指定的功能也有效。

ExtendedSequenceNumbers

如果 NIC 支援 IPsec 擴充序號,則 BOOLEAN 值會設定為 TRUE 。 否則,此成員為 FALSE

UdpEsp

NIC 可以剖析的 UDP 封裝 ESP 數據封包類型。 如需 UDP 封裝類型的描述,請參閱 UDP-ESP 封裝類型。 此成員可以是下列一或多個旗標:

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE

IPsec 卸除處理不適用於任何 UDP 封裝類型。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT

UDP 所封裝的 ESP 封裝傳輸模式封包支援 IPsec 卸除。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL

UDP 封裝封包的通道模式部分支援 IPsec 卸除。 封包的傳輸模式部分未封裝 UDP,而且不受 ESP 保護。

IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL

UDP 封裝封包的通道模式部分支援 IPsec 卸除。 封包的傳輸模式部分不是UDP封裝,而是受到ESP保護。

IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL

未封裝 UDP 封包的通道模式部分支援 IPsec 卸除。 封包的傳輸模式部分會受到UDP封裝和ESP保護。

AuthenticationAlgorithms

識別 NIC 支援的 IPsec 驗證演算法的位掩碼。 迷你埠驅動程式會指定下列值的位 OR:

IPSEC_OFFLOAD_V2_AUTHENTICATION_MD5

NIC 可以使用金鑰訊息摘要 5 (MD5) 演算法來計算或驗證密碼編譯總和檢查碼。

IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_1

NIC 可以使用安全哈希演算法 (SHA) 1 演演算法來計算或驗證密碼編譯總和檢查碼。

IPSEC_OFFLOAD_V2_AUTHENTICATION_SHA_256

NIC 可以使用 SHA 256 演演算法來計算或驗證密碼編譯總和檢查碼。

IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_128

NIC 可以使用進階加密標準 - Galois/Counter Mode (AES-GMAC) 128 演演算法來計算或驗證密碼編譯總和檢查碼。

IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_192

NIC 可以使用 AES-GMAC 192 演演算法來計算或驗證密碼編譯總和檢查碼。

IPSEC_OFFLOAD_V2_AUTHENTICATION_AES_GCM_256

NIC 可以使用 AES-GMAC 256 演演算法來計算或驗證密碼編譯總和檢查碼。

EncryptionAlgorithms

識別 NIC 支援的 IPsec 加密演算法的位遮罩。 此位掩碼是下列值的位 OR:

IPSEC_OFFLOAD_V2_ENCRYPTION_NONE

NIC 可以使用 Null 加密,也就是沒有加密但具有驗證資訊的 ESP 承載。

IPSEC_OFFLOAD_V2_ENCRYPTION_DES_CBC

NIC 可以使用 DES 演演算法來加密和解密 ESP 承載。

IPSEC_OFFLOAD_V2_ENCRYPTION_3_DES_CBC

NIC 可以使用三重 DES 演演算法來加密和解密 ESP 承載。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_128

NIC 可以使用 AES-GCM 128 演算法來加密和計算密碼編譯總和檢查碼,或解密和驗證 ESP 承載的密碼編譯總和檢查碼。 請注意,此演算法是合併模式演算法。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_192

NIC 可以使用 AES-GCM 192 演算法來加密和計算密碼編譯總和檢查碼,或解密和驗證 ESP 承載的密碼編譯總和檢查碼。 請注意,此演算法是合併模式演算法。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_GCM_256

NIC 可以使用 AES-GCM 256 演演算法來加密和計算密碼編譯總和檢查碼,或解密和驗證 ESP 承載的密碼編譯總和檢查碼。 請注意,此演算法是合併模式演算法。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_128

NIC 可以使用進階加密標準 - 加密區塊鏈結模式 (AES-CBC) 128 演演算法來加密和解密 ESP 承載。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_192

NIC 可以使用 AES-CBC 192 演演算法來加密和解密 ESP 承載。

IPSEC_OFFLOAD_V2_ENCRYPTION_AES_CBC_256

NIC 可以使用 AES-CBC 256 演演算法來加密和解密 ESP 承載。

SaOffloadCapacity

可卸除至 NIC 的 SA 套件組合數目,可能包含 ESP 或 AH 或兩者。 TCP/IP 會維護卸除 SA 套件組合數目的計數,不應加入迷你埠驅動程式所報告的 SA 套件組合數目上限。

備註

在 NDIS 6.1 和更新版本中,NDIS_IPSEC_OFFLOAD_V2 結構會用於 NDIS_OFFLOAD 結構的 IPsecV2 成員中。 NDIS_IPSEC_OFFLOAD_V2 結構會指定迷你埠配接器針對 IPsec 卸除處理所提供的目前或支援功能。

注意若要支援 IPsec 工作卸除,迷你埠驅動程序必須在 Tunnel 成員中指定 TRUE
 
NDIS_OFFLOAD用於 NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES 結構、 NDIS_BIND_PARAMETERS 結構、 NDIS_FILTER_ATTACH_PARAMETERS 結構, OID_TCP_OFFLOAD_CURRENT_CONFIG OID 和 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 狀態指示。

針對 OID_TCP_OFFLOAD_CURRENT_CONFIG,NDIS_OFFLOAD結構會指定迷你埠配接器支援的工作卸除功能。 如果目前的卸除功能變更,迷你埠驅動程式會報告 中的新功能 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 狀態指示。

NDIS_IPSEC_OFFLOAD_V2的 封裝 成員會定義迷你埠配接器支援 IPsec 卸除的 MAC 封裝。

回應 OID_TCP_OFFLOAD_CURRENT_CONFIG 查詢要求,NDIS 會在 封裝 成員中提供封裝旗標的位 OR,指出支援的封裝設定。 迷你埠驅動程序必須提供乙太網路封裝 (NDIS_ENCAPSULATION_IEEE_802_3) 。 其他類型的封裝是選擇性的。

針對 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG 狀態指示,迷你埠驅動程式會提供封裝旗標的位 OR,指出 封裝 成員中的目前功能。

下列旗標是針對 封裝 成員所定義的:

規格需求

需求
最低支援的用戶端 NDIS 6.1 和更新版本支援。
標頭 ntddndis.h (包含 Ndis.h)

另請參閱

NDIS_BIND_PARAMETERS

NDIS_FILTER_ATTACH_PARAMETERS

NDIS_IPSEC_OFFLOAD_V1

NDIS_MINIPORT_ADAPTER_OFFLOAD_ATTRIBUTES

NDIS_OFFLOAD

NDIS_OID_REQUEST

NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG

NET_BUFFER_LIST

OID_TCP_OFFLOAD_CURRENT_CONFIG