共用方式為


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

包含 從 VirtualAddressDmaLogicalAddress 開始到有效封包承載開頭的位移。 這個值小於或等於 Capacity 的值。

若要取得此片段的虛擬位址,請呼叫 NetExtensionGetFragmentVirtualAddress

若要取得此片段的 DMA 邏輯位址,請呼叫 NetExtensionGetFragmentLogicalAddress

對於傳輸佇列,這個值是唯讀的。

Scratch

用戶端可用於任何用途的位域值。 當重複使用此片段所屬 的NET_PACKET 時,此值會重設為零。

OsReserved_Bounced

保留的。 用戶端驅動程式不得讀取或寫入此值。

備註

一NET_PACKET 結構包含一或多個 NET_FRAGMENT 結構的參考。

雖然每個片段都是記憶體的幾乎連續緩衝區,但包含多個片段的封包幾乎不連續。

規格需求

需求
最低 KMDF 版本 1.29
標頭 fragment.h