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 成員所指定之 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注意 C 和 C++ 編譯程式會針對這些宏使用不同的定義。 當切換編譯程式時,無法使用宏可能會導致問題。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
標頭 | ndis/nbl.h (include ndis.h) |