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
パケット バッファーの合計長を格納します。
送信キューの場合、この値は読み取り専用です。
Offset
VirtualAddress の先頭からのオフセットと、有効なパケット ペイロードの先頭までの DmaLogicalAddress を格納します。 この値は、容量 の値以下です。
このフラグメントの仮想アドレスを取得するには、NetExtensionGetFragmentVirtualAddress呼び出します。
このフラグメントの DMA 論理アドレスを取得するには、NetExtensionGetFragmentLogicalAddressを呼び出します。
送信キューの場合、この値は読み取り専用です。
Scratch
クライアントが任意の目的で使用できるビット フィールド値。 このフラグメントが属する NET_PACKET が再利用されると、この値は 0 にリセットされます。
OsReserved_Bounced
引っ込み思案。 クライアント ドライバーでは、この値を読み取ったり書き込んだりすることはできません。
備考
1 つの NET_PACKET 構造体には、1 つ以上の NET_FRAGMENT 構造体への参照が含まれています。
各フラグメントはメモリの実質的に連続したバッファーですが、複数のフラグメントを含むパケットは実質的にあいまいです。
必要条件
要件 | 価値 |
---|---|
最小 KMDF バージョン | 1.29 |
ヘッダー | fragment.h |