NET_FRAGMENT構造体 (fragment.h)
メモリ内の 1 つの連続するバッファーを表します。
構文
typedef struct _NET_FRAGMENT {
UINT64 ValidLength : 26;
UINT64 Capacity : 26;
UINT64 Offset : 10;
UINT64 Scratch : 1;
UINT64 OsReserved_Bounced : 1;
} NET_FRAGMENT;
メンバー
ValidLength
パケット ペイロードの長さを格納します。 この値は Capacity の値以下です。
送信キューの場合、この値は読み取り専用です。
Capacity
パケット バッファーの合計長を格納します。
送信キューの場合、この値は読み取り専用です。
Offset
VirtualAddress と DmaLogicalAddress の先頭から有効なパケット ペイロードの先頭までのオフセットを格納します。 この値は Capacity の値以下です。
このフラグメントの仮想アドレスを取得するには、 NetExtensionGetFragmentVirtualAddress を呼び出します。
このフラグメントの DMA 論理アドレスを取得するには、 NetExtensionGetFragmentLogicalAddress を呼び出します。
送信キューの場合、この値は読み取り専用です。
Scratch
クライアントが任意の目的で使用できるビット フィールド値。 このフラグメントが属する NET_PACKET が再利用されると、この値は 0 にリセットされます。
OsReserved_Bounced
予約済み。 クライアント ドライバーは、この値の読み取りまたは書き込みを行う必要があります。
注釈
1 つの NET_PACKET 構造体には、1 つ以上の NET_FRAGMENT 構造体への参照が含まれます。
各フラグメントはメモリの事実上連続したバッファーですが、複数のフラグメントを含むパケットは事実上連続していません。
要件
要件 | 値 |
---|---|
最小 KMDF バージョン | 1.29 |
Header | fragment.h |