NET_BUFFER_LIST_CONTEXT結構 (ndis/nbl.h)
NET_BUFFER_LIST_CONTEXT 結構會儲存 NET_BUFFER_LIST 結構的內容資訊。
語法
typedef struct _NET_BUFFER_LIST_CONTEXT {
NET_BUFFER_LIST_CONTEXT *Next;
USHORT Size;
USHORT Offset;
UCHAR ContextData[];
} NET_BUFFER_LIST_CONTEXT, *PNET_BUFFER_LIST_CONTEXT;
成員
Next
NET_BUFFER_LIST_CONTEXT結構連結清單中的下一個NET_BUFFER_LIST_CONTEXT結構的指標。
Size
NET_BUFFER_LIST_CONTEXT 結構中整個內容空間的大小,以位元組為單位,包括已使用和未使用的內容空間。
Offset
從內容數據緩衝區的開頭到NET_BUFFER_LIST_CONTEXT結構中內容數據的開頭,以位元組為單位的位移。 Offset 成員也會指定NET_BUFFER_LIST_CONTEXT結構中未使用內容空間的位元組大小。
ContextData
內容數據緩衝區。 內容數據可以包含驅動程式所需的任何資訊。
備註
每個 NET_BUFFER_LIST 結構都可以包含預先配置NET_BUFFER_LIST_CONTEXT結構。 當NET_BUFFER_LIST結構通過驅動程式堆疊時,NET_BUFFER_LIST_CONTEXT結構的連結清單可以擴充,以容納每個驅動程式的其他數據空間。
驅動程式應該使用下列 NDIS 宏和函式來存取及操作NET_BUFFER_LIST_CONTEXT結構中的成員:
- NdisAllocateNetBufferListContext
- NdisFreeNetBufferListContext
- NET_BUFFER_LIST_CONTEXT_DATA_START
- NET_BUFFER_LIST_CONTEXT_DATA_SIZE
NDIS 驅動程式會呼叫 NdisAllocateNetBufferListContext 函式,以在NET_BUFFER_LIST_CONTEXT結構中配置連續緩衝區空間。 如有必要,NDIS 會配置新的NET_BUFFER_LIST_CONTEXT結構,並加上額外的空間以接受要求。 NDIS 驅動程式會呼叫 NdisFreeNetBufferListContext 函式可釋放緩衝區空間。
使用 NET_BUFFER_LIST_CONTEXT_DATA_SIZE 宏,以取得已使用的內容空間大小。 使用 NET_BUFFER_LIST_CONTEXT_DATA_START 宏,以取得已使用內容空間的起始位址。
如需如何使用 net 緩衝區的詳細資訊,請參閱 NET_BUFFER架構。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | NDIS 6.0 和更新版本支援。 |
標頭 | ndis/nbl.h (include ndis.h) |