NET_PACKET構造体 (packet.h)
1 つのネットワーク パケットを表します。
構文
typedef struct _NET_PACKET {
UINT32 FragmentIndex;
UINT16 FragmentCount;
NET_PACKET_LAYOUT Layout;
UINT8 Ignore : 1;
UINT8 Scratch : 1;
UINT8 Reserved1 : 6;
} NET_PACKET;
メンバーズ
FragmentIndex
このパケットのペイロード内の最初の NET_FRAGMENT 構造体のフラグメント リング内のインデックス。
FragmentCount
このパケットに属する NET_FRAGMENT 構造体の数。
Layout
NET_PACKET_LAYOUT 構造体。
送信キューの場合、ホスト スタックでプロトコル ヘッダーを使用するタスク オフロードが有効になっている場合は、各プロトコル フィールドへの読み取り専用オフセットを指定します。 たとえば、TCP チェックサム オフロードが有効になっている場合、このメンバーは TCP ヘッダーへのオフセットを指定します。 それ以外の場合、このメンバーは空です。
受信キューの場合、ホスト スタックでプロトコル ヘッダーを使用するタスク オフロードが有効になっている場合は、Layer2Type、Layer3Type、Layer4Type フラグ 設定します。 タスク オフロードがない場合、このメンバーは空です。
Ignore
受信キューの場合、クライアントはこのフィールドを設定して、パケットがホストに示されないようにします。 たとえば、ハードウェアがこのパケットのフラグメントのデータ バッファーにバイトを書き込んでいるときに DMA エラーが発生した場合、クライアントはこのフィールドを設定して部分パケットをドロップできます。
送信キューの場合、このフィールドは読み取り専用です。 設定されている場合は、クライアントがパケットを送信しないことを示します。
Scratch
クライアントが任意の目的で使用できるビット フィールド値。 NET_PACKET が再利用されると、この値は 0 にリセットされます。
Reserved1
引っ込み思案。 クライアント ドライバーは、この値を読み取ったり書き込んだりすることはできません。
備考
各 NET_PACKET 構造体は 1 つのネットワーク フレームを表し、フレーム レイアウトなど、すべてのパケットに適用できる基本的なメタデータが含まれています。 NET_PACKET には、パケット データが存在するシステム メモリ内の場所を記述する少なくとも 1 つの NET_FRAGMENT が含まれています。
NET_PACKET 構造体には、NET_RING 構造体の要素を指定できます。
必要条件
要件 | 価値 |
---|---|
最小 KMDF バージョン | 1.29 |
UMDF の最小バージョン を する | 2.33 |
ヘッダー | packet.h |