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
送信キューの場合、ホスト スタックでプロトコル ヘッダーを使用するタスク オフロードが有効になっている場合は、各プロトコル フィールドへの読み取り専用オフセットを指定します。 たとえば、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 |
Header | packet.h |