共用方式為


NET_PACKET 結構 (packet.h)

表示單一網路封包。

語法

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

NET_PACKET_LAYOUT 結構。

針對傳輸佇列,如果主機堆疊已啟用使用通訊協議標頭的工作卸除,請指定每個通訊協定欄位的唯讀位移。 例如,如果已啟用 TCP 總和檢查碼卸除,此成員會指定 TCP 標頭的位移。 否則,這個成員是空的。

針對接收佇列,如果主機堆疊已啟用使用通訊協議標頭的工作卸除,請設定 layer2TypeLayer3TypeLayer4Type 旗標。 當沒有任何工作卸除時,此成員是空的。

Ignore

針對接收佇列,用戶端會設定此字段,以防止封包被指示給主機。 例如,如果硬體在將此封包片段的位元組寫入此數據緩衝區時遇到 DMA 錯誤,則用戶端可以將此位元組設定為卸載部分封包。

對於傳輸佇列,此欄位是唯讀的。 如果設定,表示客戶端不應該傳輸封包。

Scratch

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

Reserved1

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

言論

每個 NET_PACKET 結構都代表單一網路框架,並包含適用於所有封包的基本元數據,例如框架配置。 NET_PACKET 包含至少一個 NET_FRAGMENT,描述封包數據所在系統記憶體中的位置。

NET_PACKET 結構可以是 NET_RING 結構中的專案。

要求

要求 價值
最低 KMDF 版本 1.29
最低 UMDF 版本 2.33
標頭 packet.h