NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO 構造体 (ndis.h)
[IPsec タスク オフロード機能は非推奨であり、使用しないでください。]
NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO構造体は、TCP/IP トランスポートから NIC へのインターネット プロトコル セキュリティ オフロード バージョン 2 (IPsecOV2) タスクのオフロードに使用される情報を指定します。
構文
typedef struct _NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO {
union {
struct {
PVOID OffloadHandle;
} Transmit;
struct {
ULONG SaDeleteReq : 1;
ULONG CryptoDone : 1;
ULONG NextCryptoDone : 1;
ULONG Reserved : 13;
ULONG CryptoStatus : 16;
} Receive;
};
} NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO, *PNDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO;
メンバー
Transmit
次のメンバーを含む構造体。
Transmit.OffloadHandle
トランスポート (エンドツーエンド) 接続用の IPsec ペイロードが 1 つだけ含まれるパケットの送信セキュリティ 関連付け (SA) へのハンドル。
Receive
次のメンバーを含む構造体。
Receive.SaDeleteReq
設定時に TCP/IP トランスポートが を発行する必要があることを示す ULONG 値。 OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID を 1 回実行して、パケットが受信した受信 SA を削除し、削除された受信 SA に対応する送信 SA を削除します。 ネットワーク インターフェイス カード (NIC) は、対応するOID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA要求を受信する前に、これらの CA を削除しないでください。
Receive.CryptoDone
ULONG 値を設定すると、NIC が受信パケット内の少なくとも 1 つの IPsec ペイロードに対して IPsec チェックを実行したことを示します。 この値がクリアされると、NIC がパケットに対して IPsec チェックを実行しなかったことを示します。
Receive.NextCryptoDone
ULONG 値を設定すると、NIC が受信パケットのトンネル部分とトランスポート部分の両方で IPsec チェックを実行したことを示します。 この場合は CryptoDone も設定する必要があります。 NextCryptoDone は、パケットにトンネルとトランスポートの両方の IPsec ペイロードがある場合にのみ設定されます。それ以外の場合、 NextCryptoDone は 0 に設定されます。
Receive.Reserved
NDIS 用に予約されています。
Receive.CryptoStatus
受信パケットに対して NIC が実行されたことを IPsec で確認した結果。 この結果は、次のいずれかの値として記述できます。
CryptoStatus.CRYPTO_SUCCESS
必要に応じて、パケットの暗号化が正常に解除され、認証ヘッダー (AH) チェックサム、セキュリティ ペイロード (ESP) チェックサムのカプセル化、またはパケット内の両方のチェックサムが検証されました。
CryptoStatus.CRYPTO_GENERIC_ERROR
パケットは、未指定の理由で IPsec チェックに失敗しました。
CryptoStatus.CRYPTO_TRANSPORT_AH_AUTH_FAILED
パケットのトランスポート部分の AH チェックサムが無効でした。
CryptoStatus.CRYPTO_TRANSPORT_ESP_AUTH_FAILED
パケットのトランスポート部分の ESP チェックサムが無効でした。
CryptoStatus.CRYPTO_TUNNEL_AH_AUTH_FAILED
パケットのトンネル部分の AH チェックサムが無効でした。
CryptoStatus.CRYPTO_TUNNEL_ESP_AUTH_FAILED
パケットのトンネル部分の ESP チェックサムが無効でした。
CryptoStatus.CRYPTO_INVALID_PACKET_SYNTAX
受信パケットの長さが無効です。 たとえば、IP ヘッダーの合計長では、AH/ESP のすべてのフィールドとヘッダーを含めるには十分ではありません。
CryptoStatus.CRYPTO_INVALID_PROTOCOL
SA でパケットが受信された IPsec プロトコルが、パケットで検出された IPsec プロトコルと一致しません。 たとえば、このエラーは、パケットが受信された SA が AH プロトコルを指定し、パケットに ESP ヘッダーのみが含まれている場合に発生します。
注釈
TCP/IP トランスポートがオフロード処理のために NIC に送信パケットを渡す前に、トランスポートは、NET_BUFFER_LIST構造体に関連付けられているNDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO構造体の IPsec 情報を指定 します。
具体的には、TCP/IP トランスポートは、NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO構造体の OffloadHandle メンバーの値を提供します。 OffloadHandle 値は、そのペイロードがトランスポート用かトンネル SA 用かに関係なく、1 つの IPsec ペイロードのみを持つパケットの送信 SA へのハンドルを指定します。 NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO構造体で提供される OffloadHandle 値は、ミニポート ドライバーが NIC に一連の CA を正常に追加したときに TCP/IP トランスポートに報告された OffloadHandle 値と同じ値を持ちます。 ミニポート ドライバーが に応答したときに、すべての CA が NIC に追加されました。 OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA 要求。
ミニポート ドライバーは、1 つ以上の IPsec ペイロードを持つ受信パケットを示す前に、ドライバーは、NET_BUFFER_LIST構造体に関連付けられているNDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO構造体の IPsec 情報を指定 します。
IPsec 情報を設定して取得するには、 IPsecOffloadV2NetBufferListInfo インデックスと NET_BUFFER_LIST_INFO マクロを使用します。 NET_BUFFER_LIST_INFOは、NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFO構造体を返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.1 以降でサポートされています。 |
Header | ndis.h (Ndis.h を含む) |
こちらもご覧ください
NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA