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

NET_BUFFER_LIST

NET_BUFFER_LIST_INFO

OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA