IPSEC_OFFLOAD_V2_ADD_SA 構造体 (ndis.h)
[IPsec タスク オフロード機能は非推奨であり、使用しないでください。]
IPSEC_OFFLOAD_V2_ADD_SA構造体は、ミニポート ドライバーが NIC に追加する必要があるセキュリティ関連付け (SA) に関する情報を定義します。
構文
typedef struct _IPSEC_OFFLOAD_V2_ADD_SA {
NDIS_OBJECT_HEADER Header;
PIPSEC_OFFLOAD_V2_ADD_SA Next;
ULONG NumExtHdrs;
ULONG Flags;
union {
struct {
IPAddr SrcAddr;
IPAddr DestAddr;
} IPv4Endpoints;
struct {
UCHAR SrcAddr[16];
UCHAR DestAddr[16];
} IPv6Endpoints;
};
NDIS_HANDLE OffloadHandle;
ULONG UdpEspEncapsulation;
IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS];
ULONG KeyLength;
UCHAR KeyData[1];
} IPSEC_OFFLOAD_V2_ADD_SA, *PIPSEC_OFFLOAD_V2_ADD_SA;
メンバー
Header
IPSEC_OFFLOAD_V2_ADD_SA構造体のNDIS_OBJECT_HEADER構造体。 Header が指定する構造体の Type メンバーをNDIS_OBJECT_TYPE_DEFAULTに設定し、Revision メンバーをNDIS_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1に、Size メンバーをNDIS_SIZEOF_IPSEC_OFFLOAD_V2_ADD_SA_REVISION_1に設定します。
Next
リンク リスト内の次の構造体であるIPSEC_OFFLOAD_V2_ADD_SA構造体へのポインター。 ポインターが NULL の場合、現在の構造体はリスト内の最後の構造体です。
NumExtHdrs
IPsec 拡張ヘッダーの数。 このメンバーには、次のいずれかの値を指定できます。
セキュリティの種類 | 拡張ヘッダー |
---|---|
AH 認証のみ | 1 |
ESP 認証のみ | 1 |
ESP 暗号化のみ | 1 |
ESP 認証と暗号化 | 1 |
AH と ESP 認証と暗号化 | 2 |
UDP ESP | 1 |
Flags
追加される SA が受信 SA か送信 SA かを示すビットマスクを次に示します。
IPSEC_OFFLOAD_V2_IPv6
このフラグが設定されている場合、アドレスは IPv6 になります。 それ以外の場合、アドレスは IPv4 です
IPSEC_OFFLOAD_V2_INBOUND
このフラグが設定されている場合、SA は受信です。 それ以外の場合、SA は送信されます。
IPv4Endpoints
IPv4 エンドポイント アドレス。 この構造体には、次のメンバーが含まれています。
IPv4Endpoints.SrcAddr
送信元ホスト (パケットを送信しているホスト) の IPv4 アドレス。
IPv4Endpoints.DestAddr
宛先ホスト (パケットを受信しているホスト) の IPv4 アドレス。
IPv6Endpoints
IPv6 エンドポイント アドレス。 この構造体には、次のメンバーが含まれています。
IPv6Endpoints.SrcAddr[16]
送信元ホスト (パケットを送信しているホスト) の IPv6 アドレス。
IPv6Endpoints.DestAddr[16]
宛先ホスト (パケットを受信しているホスト) の IPv6 アドレス。
OffloadHandle
新しく作成された SA へのハンドル。 ミニポート ドライバーは、 を完了する前に、このハンドルを提供します。
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA 要求。 TCP/IP トランスポートでは、 でこのハンドルを指定する必要があります。
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO または ミニポート ドライバーに送信パケットを渡す前に構造体をNDIS_IPSEC_OFFLOAD_V2_TUNNEL_NET_BUFFER_LIST_INFOします。 TCP/IP トランスポートでは、 を使用して SA を削除するときにも、このハンドルを指定する必要があります。 OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA 要求。
UdpEspEncapsulation
UDP ESP カプセル化の種類。 このメンバーには、次のフラグの 1 つ以上を指定できます。
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_NONE
UDP カプセル化は使用されません。
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT
ESP カプセル化されたトランスポート モード パケットは、UDP によってカプセル化されます。
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TUNNEL
パケットのトンネル モード部分は UDP カプセル化されます。 パケットのトランスポート モード部分は UDP カプセル化されておらず、ESP で保護されていません。
IPSEC_OFFLOAD_V2_TRANSPORT_OVER_UDP_ESP_ENCAPSULATION_TUNNEL
パケットのトンネル モード部分は UDP カプセル化されます。 パケットのトランスポート モード部分は UDP カプセル化されませんが、ESP で保護されます。
IPSEC_OFFLOAD_V2_UDP_ESP_ENCAPSULATION_TRANSPORT_OVER_TUNNEL
パケットのトンネル モード部分は UDP カプセル化されていません。 パケットのトランスポート モード部分は、UDP カプセル化され、ESP で保護されます。
SecAssoc[IPSEC_OFFLOAD_V2_MAX_EXTENSION_HEADERS]
SA の IPsec 操作 (AH、ESP、またはその両方) に関する情報を含む 2 つの要素を持つ配列。 指定された要素の数は、 NumExtHdrs メンバーで指定します。 各 IPsec 操作の情報は、 IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 構造を示します。
TCP/IP トランスポートは、 SecAssoc のバッファー内の 1 つまたは 2 つのIPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION構造体を指定します。 各IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION構造体は、構造体で指定された SA を使用する操作認証または暗号化/暗号化解除の種類を示します。 配列内のIPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION構造体の順序は、ミニポート ドライバーが各 SA の操作を実行する順序を示します。 サポートされている操作の組み合わせは、暗号化/復号化 (ESP) とそれに続く認証 (AH) の 1 つだけです。
KeyLength
KeyData のバッファーの長さ (バイト単位)。
KeyData[1]
SecAssoc で指定された CA のキーを含む可変長配列。 暗号化アルゴリズムと認証アルゴリズムの両方が、 の EncryptionAlgorithm メンバーと AuthenticationAlgorithm メンバーによって指定されている場合 構造体IPSEC_OFFLOAD_V2_SECURITY_ASSOCIATION 、 KeyData のバッファーには、一方のキー情報の後にもう一方のキー情報が含まれます。 キーの先頭と長さは、それぞれ KeyOffsetBytes メンバーと KeyLength メンバーによって指定されます。
注釈
この構造は廃止されました。代わりに IPSEC_OFFLOAD_V2_ADD_SA_EX を使用してください。
IPSEC_OFFLOAD_V2_ADD_SA構造体は、追加する必要があるセキュリティ SA と、リンク リスト内の次のIPSEC_OFFLOAD_V2_ADD_SA構造体へのポインターを指定します。 IPSEC_OFFLOAD_V2_ADD_SA構造体は、 OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA Oid。
IPSEC_OFFLOAD_V2_ADD_SA構造体は、送信元と宛先、および CA が適用される IP プロトコルを指定します。 このフィルターは、トランスポート モード接続 (つまり、2 つのホスト間のエンドツーエンド接続) に関連します。 指定した接続がトンネルを介して行われる場合、トンネルの送信元アドレスと宛先アドレスが指定されます。
メンバーが 0 に設定されている場合、そのパラメーターは、指定された CA のパケットをフィルター処理するために使用されません。 たとえば、 SrcAddr が 0 に設定されている場合、指定した CA は、任意の送信元アドレスを含むパケットに適用できます。 すべてのフィルター パラメーターが 0 に設定されている場合、指定した CA は、任意の種類のパケットを任意の宛先ホストに送信している任意のソース ホストに適用されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.1 および 6.20 でサポートされています。 NDIS 6.30 以降の場合は、IPSEC_OFFLOAD_V2_ADD_SA_EXを使用します。 |
Header | ndis.h (Ndis.h を含む) |