共用方式為


OFFLOAD_IPSEC_ADD_UDPESP_SA結構 (ntddndis.h)

OFFLOAD_IPSEC_ADD_UDPESP_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之因特網通訊協定安全性 (IPsec) 作業 (AH 或 ESP) 的相關信息。 每個 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 中指定的封裝類型和目的地埠來建立剖析器專案,、將剖析器專案新增至剖析器專案清單,然後卸除指定的 SAS。 迷你埠驅動程序應該會傳回 EncapTypeEntryOffldHandle 中識別新建立剖析器專案的句柄。 如果指定的剖析器項目已經在剖析器專案清單中,miniport 應該只會傳回現有剖析器專案的 EncapTypeEntryOffldHandle 句柄。

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

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

KeyLen

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

KeyMat[1]

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

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

言論

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

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

要求

要求 價值
標頭 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