次の方法で共有


OFFLOAD_IPSEC_ADD_SA 構造体 (ntddndis.h)

OFFLOAD_IPSEC_ADD_SA構造体には、ミニポート ドライバーが NIC に追加する各セキュリティ関連付け (SA) の情報が含まれています。

構文

typedef struct _OFFLOAD_IPSEC_ADD_SA {
  IPAddr                       SrcAddr;
  IPMask                       SrcMask;
  IPAddr                       DestAddr;
  IPMask                       DestMask;
  ULONG                        Protocol;
  USHORT                       SrcPort;
  USHORT                       DestPort;
  IPAddr                       SrcTunnelAddr;
  IPAddr                       DestTunnelAddr;
  USHORT                       Flags;
  SHORT                        NumSAs;
  OFFLOAD_SECURITY_ASSOCIATION SecAssoc[OFFLOAD_MAX_SAS];
  HANDLE                       OffloadHandle;
  ULONG                        KeyLen;
  UCHAR                        KeyMat[1];
} OFFLOAD_IPSEC_ADD_SA, *POFFLOAD_IPSEC_ADD_SA;

メンバー

SrcAddr

送信元ホスト (パケットを送信するホスト) の IP アドレス。

SrcMask

ソース IP アドレスのサブネット マスク。

DestAddr

宛先ホスト (パケットを受信するホスト) の IP アドレス。

DestMask

宛先 IP アドレスのサブネット マスク。

Protocol

IP プロトコル。 IP プロトコルの種類 (TCP、UDP、ICMP など) の任意の組み合わせを指定できます。 Protocol のエンコードは、IP ヘッダーの [プロトコル] フィールドと同じです。 Protocol が 0 に設定されている場合、SA はすべての IP プロトコルに適用されます。

SrcPort

ソース TCP または UDP ポート。 SrcPort が 0 に設定されている場合、SA はすべてのソース TCP/UDP ポートに適用されます。

DestPort

宛先 TCP または UDP ポート。 DestPort が 0 に設定されている場合、SA はすべてのソース TCP/UDP ポートに適用されます。

SrcTunnelAddr

トンネルのソース エンドポイント (コネクタなど) の IP アドレス。 ミニポート ドライバーは、次を使用します。
SrcTunnelAddr は、SA で送信されるパケットのトンネル IP ヘッダーの送信元アドレスです。 SrcTunnelAddr は、パケットのトンネル部分に適用される SA に対してのみ指定されます。 SrcTunnelAddr は、パケットのトランスポート部分に適用される SA に対して 0 に設定されます。

DestTunnelAddr

トンネルの宛先エンドポイント (コネクタなど) の IP アドレス。 ミニポート ドライバーは、SA で送信されるパケットのトンネル IP ヘッダーの宛先アドレスとして DestTunnelAddr を使用します。 DestTunnelAddr は、パケットのトンネル部分に適用される SA に対してのみ指定されます。 パケットのトランスポート部分に適用される SA の場合、DestTunnelAddr は 0 に設定されます。

Flags

追加される SA が受信 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 のバッファー内の 1 つまたは 2 つのOFFLOAD_SECURITY_ASSOCIATION構造体を指定します。 各OFFLOAD_SECURITY_ASSOCIATION構造体は、構造体で指定された SA を使用する操作認証または暗号化/復号化の種類を示します。 配列内のOFFLOAD_SECURITY_ASSOCIATION構造体の順序は、ミニポート ドライバーが各 SA の操作を実行する順序を示します。 サポートされている操作の組み合わせは、暗号化/復号化 (ESP) とそれに続く認証 (AH) の 1 つだけです。

OffloadHandle

新しく作成された SA へのハンドル。 ミニポート ドライバーは、完了する前に、このハンドルを提供します。
OID_TCP_TASK_IPSEC_ADD_SA 要求。 TCP/IP トランスポートは、ミニポート ドライバーに送信パケットを渡す前に 、NDIS_IPSEC_PACKET_INFO 構造体でこのハンドルを指定する必要があります。 TCP/IP トランスポートでは、 を使用して SA を削除するときにも、このハンドルを指定する必要があります。 OID_TCP_TASK_IPSEC_DELETE_SA 要求。

KeyLen

KeyMat のバッファーの長さ (バイト単位)。

KeyMat[1]

SecAssoc で指定された CA のキーを含む可変長配列。 機密性 (暗号化/暗号化解除) アルゴリズムと整合性 (認証) アルゴリズムの両方が、 の ConfAlgo メンバーと IntegrityAlgo メンバーによって指定されている場合 構造OFFLOAD_SECURITY_ASSOCIATIONKeyMat のバッファーには、最初に確認アルゴリズムのキー情報が含まれており、その直後に整合性アルゴリズムのキー情報が格納されます。

KeyMat のバッファー内の各キーの長さは、機密性または整合性アルゴリズムを指定するOFFLOAD_ALGO_INFO構造体で algoKeylen によって指定されます。 (OFFLOAD_ALGO_INFO構造体は、OFFLOAD_SECURITY_ASSOCIATION構造体のメンバーです。

注釈

OFFLOAD_IPSEC_ADD_SA構造体は、 OID_TCP_TASK_IPSEC_ADD_SA OID で使用されます。

要件

要件
Header ntddndis.h (Ndis.h を含む)

こちらもご覧ください

NDIS_IPSEC_PACKET_INFO

OFFLOAD_ALGO_INFO

OFFLOAD_SECURITY_ASSOCIATION

OID_TCP_TASK_IPSEC_ADD_SA

OID_TCP_TASK_IPSEC_DELETE_SA