OFFLOAD_IPSEC_ADD_UDPESP_SA 構造体 (ntddndis.h)
OFFLOAD_IPSEC_ADD_UDPESP_SA構造体には、ミニポート ドライバーが UDP カプセル化 ESP パケットを NIC に追加する各セキュリティ関連付け (SA) の情報が含まれています。
構文
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 プロトコル。 Protocol のエンコードは、IP ヘッダーの [プロトコル] フィールドと同じです。 値は、UDP を指定する 11 (16 進数) である必要があります。
SrcPort
ソース TCP または UDP ポート。 SrcPort が 0 に設定されている場合、SA はすべてのソース TCP/UDP ポートに適用されます。
DstPort
宛先 TCP または UDP ポート。 DestPort が 0 に設定されている場合、SA はすべてのソース TCP/UDP ポートに適用されます。
SrcTunnelAddr
トンネルのソース エンドポイント (コネクタなど) の IP アドレス。 ミニポート ドライバーは、次を使用します。
SrcTunnelAddr は、SA で送信されるパケットのトンネル IP ヘッダーの送信元アドレスです。
SrcTunnelAddr は、パケットのトンネル部分に適用される SA に対してのみ指定されます。
SrcTunnelAddr は、パケットのトランスポート部分に適用される SA に対して 0 に設定されます。
DstTunnelAddr
トンネルの宛先エンドポイント (コネクタなど) の 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 要求。
EncapTypeEntry
パーサー エントリの UDP-ESP カプセル化の種類と宛先ポート。 この情報は、 OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY 構造体。
EncapTypeEntryOffldHandle
Flags= OFFLOAD_INBOUND_SAと EncapTypeEntryOffldHandle が NULL の場合、ミニポート ドライバーは、EncapTypeEntry で指定されたパーサー エントリが NIC のパーサー エントリ リストに含まれているかどうかをチェックする必要があります。 そうでない場合、ミニポート ドライバーは、 EncapTypeEntry で指定されたカプセル化の種類と宛先ポートを使用してパーサー エントリを作成し、パーサー エントリの一覧にパーサー エントリを追加し、指定した CA をオフロードする必要があります。 ミニポート ドライバーは、新しく作成されたパーサー エントリを識別する EncapTypeEntryOffldHandle のハンドルを返す必要があります。 指定したパーサー エントリが既にパーサー エントリの一覧にある場合、ミニポートは、既存のパーサー エントリの EncapTypeEntryOffldHandle でハンドルを返すだけです。
Flags= OFFLOAD_INBOUND_SAと EncapTypeEntryOffldHandle が NULL 以外の場合、EncapTypeEntryOffldHandle には、NIC のパーサー エントリ リストに既にあるパーサー エントリへのハンドルが含まれます。 この場合、ミニポート ドライバーは単に指定された CA をオフロードする必要があります。
フラグ= がOFFLOAD_OUTBOUND_SA場合、ミニポート ドライバーは EncapTypeEntryOffldHandle パラメーターを無視する必要があります。
KeyLen
KeyMat のバッファーの長さ (バイト単位)。
KeyMat[1]
SecAssoc で指定された CA のキーを含む可変長配列。 機密性 (暗号化/復号化) アルゴリズムと整合性 (認証) アルゴリズムの両方が、 の ConfAlgo および IntegrityAlgo によって指定されている場合 構造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構造体に EncapTypeEntry メンバーと EncapTypeEntryOffldHandle メンバーが含まれていることです。
要件
要件 | 値 |
---|---|
Header | ntddndis.h (Ndis.h を含む) |