NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO構造体 (ndis.h)
NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO構造体は、TCP/IP トランスポートからミニポート ドライバーにインターネット プロトコル セキュリティ (IPsec) タスクをオフロードする際に使用される情報を指定します。
構文
typedef struct _NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO {
union {
struct {
NDIS_HANDLE OffloadHandle;
} Transmit;
struct {
USHORT SaDeleteReq : 1;
USHORT CryptoDone : 1;
USHORT NextCryptoDone : 1;
USHORT Pad : 13;
USHORT CryptoStatus;
} Receive;
};
} NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO, *PNDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO;
メンバー
Transmit
次のメンバーを含む 構造体。
Transmit.OffloadHandle
そのペイロードがトランスポート (エンドツーエンド) 接続用かトンネル接続用かに関係なく、IPsec ペイロードが 1 つしかないパケットの送信セキュリティ アソシエーション (SA) へのハンドル。
Receive
次のメンバーを含む 構造体。
Receive.SaDeleteReq
設定時に TCP/IP トランスポートがを発行する必要があることを示す USHORT 値 OID_TCP_TASK_IPSEC_DELETE_SA OID は、パケットが受信した受信 SA を 1 回削除し、もう一度削除された受信 SA に対応する送信 SA を削除します。 ネットワーク インターフェイス カード (NIC) は、対応するOID_TCP_TASK_IPSEC_DELETE_SA要求を受信する前に、これらの CA のいずれかを削除することはできません。
Receive.CryptoDone
設定すると、NIC が受信パケット内の少なくとも 1 つの IPsec ペイロードに対して IPsec チェックを実行したことを示す USHORT 値。 この値がクリアされると、NIC がパケットに対して IPsec チェックを実行しなかったことを示します。
Receive.NextCryptoDone
設定時に、NIC が受信パケットのトンネル部分とトランスポート部分の両方で IPsec チェックを実行したことを示す USHORT 値。 この場合、CryptoDone も設定する必要があります。 NextCryptoDone は、パケットにトンネルとトランスポートの両方の IPsec ペイロードがある場合にのみ設定されます。それ以外の場合、 NextCryptoDone は 0 に設定されます。
Receive.Pad
NDIS 用に予約されています。
Receive.CryptoStatus
受信パケットに対して NIC が実行されたことを確認した IPsec の結果。 この結果は、次のいずれかの値として記述できます。
注釈
TCP/IP トランスポートは、NIC が NIC のミニポート ドライバーに IPsec タスクを実行する送信パケットを渡す前に、トランスポートは、NET_BUFFER_LIST構造体に関連付けられているNDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO構造体の IPsec 情報を更新します。
具体的には、TCP/IP トランスポートは、NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO構造体の OffloadHandle メンバーの値を提供します。 OffloadHandle 値は、そのペイロードがトランスポート (エンドツーエンド) セキュリティ アソシエーションとトンネル セキュリティ アソシエーションのどちらに対するものであるかに関係なく、IPsec ペイロードが 1 つだけのパケットの送信セキュリティ アソシエーション (SA) へのハンドルを指定します。 NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO構造体で提供される OffloadHandle 値は、TCP/IP トランスポートが NIC に送信 SA を追加するようにミニポート ドライバーに要求OID_TCP_TASK_IPSEC_ADD_SA設定したときに指定された OffloadHandle 値と同じ値を持ちます。
ミニポート ドライバーは、1 つ以上の IPsec ペイロードを持つ受信パケットを示す前に、ドライバーは、次のように 、NET_BUFFER_LIST 構造体に関連付けられている NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO構造体を 更新します。
- NIC がパケット内の少なくとも 1 つの IPsec ペイロードに対して IPsec チェックを実行した場合、ミニポート ドライバーは CryptoDone メンバーを設定し、 CryptoStatus メンバーに適切な値を指定してチェックサム検証テストの結果を示します。
- NIC が受信パケットのトンネル部分とトランスポート部分の両方で IPsec チェックを実行した場合、ミニポート ドライバーは NextCryptoDone メンバーも設定します。 NextCryptoDone は、パケットにトンネルとトランスポートの両方の IPsec ペイロードがある場合にのみ設定されます。それ以外の場合、 NextCryptoDone は 0 に設定されます。
- NIC がパケットに対して IPsec チェックを実行しなかった場合、ミニポート ドライバーは CryptoDone または NextCryptoDone を設定せず 、CryptoStatus 値を指定しません。
IPsec 情報を設定して取得するには、NET_BUFFER_LIST_INFO マクロで IPsecOffloadV1NetBufferListInfo インデックスを使用します。 NET_BUFFER_LIST_INFOは、NDIS_IPSEC_OFFLOAD_V1_NET_BUFFER_LIST_INFO構造体を返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.0 でサポートされています。 NDIS 6.1 以降の場合は、NDIS_IPSEC_OFFLOAD_V2_NET_BUFFER_LIST_INFOを使用します。 |
Header | ndis.h (Ndis.h を含む) |