共用方式為


OFFLOAD_IPSEC_ADD_UDPESP_SA 結構 (ntddndis.h)

OFFLOAD_IPSEC_ADD_UDPESP_SA 結構包含每個安全性關聯的資訊, (SA) 迷你埠驅動程式會將 UDP 封裝的 ESP 封包新增至 NIC。

語法

typedef struct _OFFLOAD_IPSEC_ADD_UDPESP_SA {
  IPAddr                               SrcAddr;
  IPMask                               SrcMask;
  IPAddr                               DstAddr;
  IPMask                               DstMask;
  ULONG                                Protocol;
  USHORT                               SrcPort;
  USHORT                               DstPort;
  IPAddr                               SrcTunnelAddr;
  IPAddr                               DstTunnelAddr;
  USHORT                               Flags;
  SHORT                                NumSAs;
  OFFLOAD_SECURITY_ASSOCIATION         SecAssoc[OFFLOAD_MAX_SAS];
  HANDLE                               OffloadHandle;
  OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY EncapTypeEntry;
  HANDLE                               EncapTypeEntryOffldHandle;
  ULONG                                KeyLen;
  UCHAR                                KeyMat[1];
} OFFLOAD_IPSEC_ADD_UDPESP_SA, *POFFLOAD_IPSEC_ADD_UDPESP_SA;

成員

SrcAddr

來源主機的IP位址 (傳送封包的主機) 。

SrcMask

來源IP位址的子網掩碼。

DstAddr

目的地主機的IP位址 (接收封包的主機) 。

DstMask

目的地 IP 位址的子網掩碼。

Protocol

IP 通訊協定。 通訊 協定 的編碼方式與IP標頭中 [通訊協定] 字段的編碼方式相同。 此值應該是 11 (十六進位) ,指定 UDP。

SrcPort

來源 TCP 或 UDP 連接埠。 如果 SrcPort 設定為零,SA 會套用至任何來源 TCP/UDP 埠。

DstPort

目的地 TCP 或 UDP 連接埠。 如果 DestPort 設定為零,SA 會套用至任何來源 TCP/UDP 埠。

SrcTunnelAddr

通道的來源端點IP位址,例如連接器。 迷你埠驅動程式使用
SrcTunnelAddr 作為 SA 上傳送之封包之通道 IP 標頭的來源位址。 SrcTunnelAddr 只會針對套用至封包之通道部分的 SA 指定。 SrcTunnelAddr 會針對套用至封包傳輸部分的 SA 設定為零。

DstTunnelAddr

通道的目的地端點IP位址,例如連接器。 迷你埠驅動程式會使用 DestTunnelAddr 作為SA上傳送之封包之通道IP標頭的目的地位址。 DestTunnelAddr 只會針對套用至封包之通道部分的 SA 指定。 DestTunnelAddr 會針對套用至封包傳輸部分的 SA 設定為零。

Flags

位掩碼,指出要新增的 SA 是否為輸入或輸出 SA,如下所示:

OFFLOAD_INBOUND_SA

指定輸入 SA。

OFFLOAD_OUTBOUND_SA

指定輸出SA。

NumSAs

SecAssoc 陣列中的元素數目。 陣列中的每個專案都是 OFFLOAD_SECURITY_ASSOCIATION 結構。

SecAssoc[OFFLOAD_MAX_SAS]

可變長度陣列,其中包含SA (AH或ESP) 之因特網通訊協定安全性 (IPsec) 作業的相關信息。 每個 IPsec 作業的資訊都會格式化為OFFLOAD_SECURITY_ASSOCIATION結構。

TCP/IP 傳輸會在 SecAssoc 的緩衝區中指定一或兩個OFFLOAD_SECURITY_ASSOCIATION結構。 每個OFFLOAD_SECURITY_ASSOCIATION結構都會指出要使用結構中所指定 SA 的 operation--authentication 或 encryption/decryption-- 類型。 陣列中OFFLOAD_SECURITY_ASSOCIATION結構的順序表示迷你埠驅動程序應該針對每個 SA 執行作業的順序。 僅支援一個作業組合:加密/解密 (ESP) 後面接著驗證 (AH) 。

OffloadHandle

新建立之 SA 的句柄。 迷你埠驅動程式會在完成 之前提供此句柄
OID_TCP_TASK_IPSEC_ADD_SA 要求。 TCP/IP 傳輸必須在 NDIS_IPSEC_PACKET_INFO 結構中指定此句柄,才能將傳送封包傳遞至迷你埠驅動程式。 使用 刪除 SA 時,TCP/IP 傳輸也必須指定此句柄 OID_TCP_TASK_IPSEC_DELETE_SA 要求。

EncapTypeEntry

剖析器專案的 UDP-ESP 封裝類型和目的地埠。 這項資訊的格式為 OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY 結構。

EncapTypeEntryOffldHandle

Flags= OFFLOAD_INBOUND_SAEncapTypeEntryOffldHandleNULL 時,迷你埠驅動程式應該檢查 EncapTypeEntry 指定的剖析器專案是否位於 NIC 的剖析器項目清單中。 如果不是,迷你埠驅動程序應該使用 EncapTypeEntry 中指定的封裝類型和目的地埠來建立剖析器專案、將剖析器專案新增至剖析器專案清單,以及卸除指定的 SA。 迷你埠驅動程序應該會在 EncapTypeEntryOffldHandle 中傳回句柄,以識別新建立的剖析器專案。 如果指定的剖析器項目已經在剖析器專案清單中,迷你埠應該只會針對現有的剖析器項目傳回 EncapTypeEntryOffldHandle 中的句柄。

Flags= OFFLOAD_INBOUND_SAEncapTypeEntryOffldHandle 為非 NULL 時, EncapTypeEntryOffldHandle 會包含已經位於 NIC 剖析器項目清單中的剖析器專案句柄。 在此情況下,迷你埠驅動程序應該只會卸除指定的CA。

Flags= OFFLOAD_OUTBOUND_SA時,迷你埠驅動程序應該忽略 EncapTypeEntryOffldHandle 參數。

KeyLen

KeyMat 緩衝區的長度,以位元組為單位。

KeyMat[1]

可變長度陣列,其中包含 SecAssoc 所指定之 SA 的索引鍵。 如果機密性 (加密/解密) 演算法和完整性 (驗證) 演算法是由 的 ConfAlgoIntegrityAlgo 所指定 OFFLOAD_SECURITY_ASSOCIATION 結構中, KeyMat 的緩衝區會先包含確認演算法的密鑰資訊,後面接著完整性演算法的密鑰資訊。

在 KeyMat 緩衝區中每個金鑰的長度是由 algoKeyLen 在指定機密性或完整性演算法的 OFFLOAD_ALGO_INFO 結構中指定。 (OFFLOAD_ALGO_INFO 結構是 OFFLOAD_SECURITY_ASSOCIATION structure 的成員。)

備註

OFFLOAD_IPSEC_ADD_UDPESP_SA 結構會與 搭配使用 OID_TCP_TASK_IPSEC_ADD_UDPESP_SA 老。

請注意,OFFLOAD_IPSEC_ADD_UDPESP_SA 結構幾乎與OID_TCP_TASK_IPSEC_ADD_SA要求中使用的OFFLOAD_IPSEC_ADD_SA結構相同。 唯一的差異在於OFFLOAD_IPSEC_ADD_UDPESP_SA結構包含 EncapTypeEntry 和 EncapTypeEntryOffldHandle 成員。

規格需求

需求
標頭 ntddndis.h (包括 Ndis.h)

另請參閱

NDIS_IPSEC_PACKET_INFO

OFFLOAD_ALGO_INFO

OFFLOAD_IPSEC_ADD_SA

OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY

OFFLOAD_SECURITY_ASSOCIATION

OID_TCP_TASK_IPSEC_ADD_SA

OID_TCP_TASK_IPSEC_ADD_UDPESP_SA

OID_TCP_TASK_IPSEC_DELETE_SA