NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO 構造体 (ndis.h)
NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO構造体には、カプセル化されたパケットに関する追加の帯域外情報が含まれています。 詳細については、「 汎用ルーティング カプセル化 (NVGRE) タスク オフロード (NVGRE-TO) を使用したネットワーク仮想化 」を参照してください。
構文
typedef struct _NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO {
union {
struct {
ULONG IsEncapsulatedPacket : 1;
ULONG EncapsulatedPacketOffsetsValid : 1;
ULONG InnerFrameOffset : 8;
ULONG TransportIpHeaderRelativeOffset : 6;
ULONG TcpHeaderRelativeOffset : 10;
ULONG IsInnerIPv6 : 1;
ULONG TcpOptionsPresent : 1;
ULONG Reserved : 4;
} EncapsulatedPacketOffsets;
PVOID Value;
};
} NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO, *PNDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO;
メンバー
EncapsulatedPacketOffsets
EncapsulatedPacketOffsets.IsEncapsulatedPacket
このメンバーが TRUE の場合、この NBL は、トランスポート IP ヘッダーを持つ内部イーサネット フレームを含むパケットを表します。 通常のパケットの場合は FALSE です。 IsEncapsulatedPacket が TRUE の場合、既存のヘッダー オフセット フィールドNDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO。LsoV2Transmit。TcpHeaderOffset と NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO。送信。TcpHeaderOffset は正しい値を持たず、NIC またはドライバーで使用することはできません。 代わりに、ミニポート ドライバーは、この構造体の他のメンバーで指定されたオフセットを使用する必要があります。
EncapsulatedPacketOffsets.EncapsulatedPacketOffsetsValid
このメンバーが TRUE の場合、 InnerFrameOffset、 TransportIpHeaderRelativeOffset、 および TcpHeaderRelativeOffset メンバーには有効な値があります。
EncapsulatedPacketOffsets.InnerFrameOffset
パケットの先頭から内側のイーサネット フレームの最初のバイトまでのオフセット。
EncapsulatedPacketOffsets.TransportIpHeaderRelativeOffset
InnerFrameOffset に対する相対的な内部 IP ヘッダーの最初のバイトへのオフセット。
EncapsulatedPacketOffsets.TcpHeaderRelativeOffset
TransportIpHeaderRelativeOffset に対する相対的な内部 (トランスポート) ヘッダーの最初のバイトへのオフセット。 内部フレームが TCP パケットでない場合でも、この値は常に正しいオフセットに設定されます。
EncapsulatedPacketOffsets.IsInnerIPv6
カプセル化されたパケット内の内部 IP ヘッダーに IPv6 アドレスが含まれていることを示すように、プロトコル ドライバーによって設定されます。
EncapsulatedPacketOffsets.TcpOptionsPresent
内部 TCP ヘッダーに TCP オプションが含まれている場合に、プロトコル ドライバーによって設定されます。 これにより、ミニポート ドライバーは、ペイロードにアクセスする TCP ヘッダーの長さを想定するオプションがない場合にケースを最適化できます。
EncapsulatedPacketOffsets.Reserved
将来使用するために予約されています。
Value
将来利用するために予約されています。
注釈
NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFOのメンバーは、tcpIpChecksumNetBufferListInfo または TcpLargeSendNetBufferListInfo がNDIS_NET_BUFFER_LIST_INFO構造体で指定されている場合にのみ意味があります。
IsEncapsulatedPacket メンバーが TRUE で、TcpIpChecksumNetBufferListInfo アウトオブバンド (OOB) 情報が有効な場合は、NVGRE のサポートが必要であり、NIC がトンネル (外部) IP ヘッダー、トランスポート (内部) IP ヘッダー、TCP または UDP ヘッダー (存在する場合) のチェックサムを計算する必要があることを示します。 NVGRE パケットは、パケットがミニポート アドバタイズされた機能に準拠している場合にのみオフロードされます。 たとえば、ミニポートがその基本機能で UDP Tx チェックサム オフロードのサポートをアドバタイズしなかった場合、UDP ヘッダーを含むパケットはオフロードされません。 詳細については、「 チェックサム タスクのオフロード」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | NDIS 6.30 以降でサポートされています。 |
Header | ndis.h |
こちらもご覧ください
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD