NET_FRAGMENT structure (fragment.h)
表示記憶體中的一個連續緩衝區。
語法
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 時,此值會重設為零。
OsReserved_Bounced
保留的。 用戶端驅動程式不得讀取或寫入此值。
備註
單 一NET_PACKET 結構包含一或多個 NET_FRAGMENT 結構的參考。
雖然每個片段都是記憶體的幾乎連續緩衝區,但包含多個片段的封包幾乎不連續。
規格需求
需求 | 值 |
---|---|
最低 KMDF 版本 | 1.29 |
標頭 | fragment.h |