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) |