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を使用します。 |
ヘッダー | ndis.h (Ndis.h を含む) |