NET_BUFFER_DATA結構 (ndis/nbl.h)
NET_BUFFER_DATA 結構包含用來管理附加至NET_BUFFER結構之數據緩衝區的資訊,並識別NET_BUFFER結構清單中的下一個 NET_BUFFER 結構。
語法
typedef struct _NET_BUFFER_DATA {
NET_BUFFER *Next;
MDL *CurrentMdl;
ULONG CurrentMdlOffset;
NET_BUFFER_DATA_LENGTH NbDataLength;
MDL *MdlChain;
ULONG DataOffset;
} NET_BUFFER_DATA, *PNET_BUFFER_DATA;
成員
Next
NET_BUFFER結構連結清單中的下一個NET_BUFFER結構的指標。 如果這個結構是清單中的最後一個NET_BUFFER結構,則此成員會 NULL。
CurrentMdl
目前驅動程式所使用之第一個 MDL 的指標。 此成員會藉由略過目前驅動程式未使用的任何 MDL,來改善效能的優化。
CurrentMdlOffset
位移,以位元組為單位,以位元組為單位 在MDL中,CurrentMdl 成員所指定的 MDL 中使用資料 空間。
NbDataLength
MDL 鏈結中已使用之數據空間的長度,以位元組為單位。 最大長度為0xFFFFFFFF個字節。
MdlChain
對應數據緩衝區之 MDL 連結清單的指標。 數據緩衝區會儲存網路數據。
DataOffset
從 MDL 鏈結的開頭到 MDL 鏈結中網路數據的開頭,以位元組為單位的位移。 此位移也是 未使用資料空間的大小,以位元組為單位,。
言論
NET_BUFFER_HEADER 結構包含定義 NET_BUFFER 結構的NET_BUFFER_DATA結構。 若要存取NET_BUFFER_DATA的成員,請使用 NdisRetreatNetBufferDataStart 和 NdisAdvanceNetBufferDataStart 函式,以及下列巨集:
NET_BUFFER_CURRENT_MDL_OFFSET
Note C 和 C++ 編譯程式會針對這些巨集使用不同的定義。 切換編譯程式時,無法使用巨集可能會導致問題。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
標頭 | ndis/nbl.h (include ndis.h) |