共用方式為


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_NEXT_NB

NET_BUFFER_FIRST_MDL

NET_BUFFER_DATA_OFFSET

NET_BUFFER_DATA_LENGTH

NET_BUFFER_CURRENT_MDL

NET_BUFFER_CURRENT_MDL_OFFSET
注意 C 和 C++ 編譯程式會針對這些宏使用不同的定義。 當切換編譯程式時,無法使用宏可能會導致問題。
 

規格需求

需求
最低支援的用戶端 NDIS 6.0 和更新版本支援。
標頭 ndis/nbl.h (include ndis.h)

另請參閱

NET_BUFFER

NET_BUFFER_CURRENT_MDL

NET_BUFFER_CURRENT_MDL_OFFSET

NET_BUFFER_DATA_LENGTH

NET_BUFFER_DATA_OFFSET

NET_BUFFER_FIRST_MDL

NET_BUFFER_HEADER

NET_BUFFER_NEXT_NB

NdisAdvanceNetBufferDataStart NdisRetreatNetBufferDataStart