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
針對傳輸佇列,如果主機堆疊已啟用使用通訊協議標頭的工作卸除,請指定每個通訊協定欄位的唯讀位移。 例如,如果已啟用 TCP 總和檢查碼卸除,這個成員會指定 TCP 標頭的位移。 否則,這個成員是空的。
針對接收佇列,如果主機堆疊已啟用使用通訊協議標頭的工作卸除,請設定 Layer2Type、Layer3Type 和 Layer4Type 旗標。 當沒有任何工作卸除時,此成員是空的。
Ignore
針對接收佇列,客戶端會設定此字段,以防止將封包指示給主機。 例如,如果硬體在將位元組寫入此封包片段的數據緩衝區時發生 DMA 錯誤,則用戶端可以將此位元組設定為卸除部分封包。
對於傳輸佇列,此欄位是唯讀的。 如果設定,表示客戶端不應該傳輸封包。
Scratch
用戶端可用於任何用途的位域值。 重複使用 NET_PACKET 時,此值會重設為零。
Reserved1
保留的。 用戶端驅動程式不得讀取或寫入此值。
備註
每個 NET_PACKET 結構都代表單一網路框架,並包含適用於所有封包的基本元數據,例如框架配置。 NET_PACKET至少包含一個NET_FRAGMENT,描述封包數據所在系統記憶體中的位置。
NET_PACKET 結構可以是NET_RING結構中的專案。
規格需求
需求 | 值 |
---|---|
最低 KMDF 版本 | 1.29 |
最低UMDF版本 | 2.33 |
標頭 | packet.h |