Condividi tramite


NET_BUFFER_LIST_CONTEXT struttura (ndis/nbl.h)

La struttura NET_BUFFER_LIST_CONTEXT archivia le informazioni di contesto per una struttura NET_BUFFER_LIST .

Sintassi

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;

Members

Next

Puntatore alla struttura NET_BUFFER_LIST_CONTEXT successiva in un elenco collegato di strutture NET_BUFFER_LIST_CONTEXT.

Size

Le dimensioni, in byte, dell'intero spazio di contesto nella struttura NET_BUFFER_LIST_CONTEXT, inclusi lo spazio di contesto usato e inutilizzato.

Offset

Offset, in byte, dall'inizio del buffer dei dati di contesto all'inizio dei dati di contesto nella struttura NET_BUFFER_LIST_CONTEXT. Il membro Offset specifica anche le dimensioni in byte dello spazio di contesto inutilizzato nella struttura NET_BUFFER_LIST_CONTEXT.

ContextData

Buffer dei dati di contesto. I dati di contesto possono includere tutte le informazioni necessarie per un driver.

Commenti

Ogni struttura NET_BUFFER_LIST può includere una struttura di NET_BUFFER_LIST_CONTEXT preallocata. Come struttura NET_BUFFER_LIST viaggia attraverso lo stack di driver, l'elenco collegato di strutture NET_BUFFER_LIST_CONTEXT può espandersi per ospitare spazio dati aggiuntivo per ogni driver.

I driver devono usare le macro e le funzioni NDIS seguenti per accedere e modificare i membri in una struttura di NET_BUFFER_LIST_CONTEXT:

Il membro ContextData della struttura NET_BUFFER_LIST_CONTEXT specifica la parte dei dati della struttura NET_BUFFER_LIST_CONTEXT. Per migliorare le prestazioni del sistema, un driver deve preallocare qualsiasi spazio dati di contesto necessario quando il driver alloca un pool di strutture NET_BUFFER_LIST. Per preallocare questo spazio dati, un driver chiama Funzione NdisAllocateNetBufferListPool e quindi specifica la quantità di spazio dati necessaria nel parametro ContextSize . La preallevazione di questo spazio dati salva l'NDIS dall'allocazione della memoria nei percorsi di ricezione e invio.
Nota NDIS stima lo spazio dati di contesto richiesto e, se necessario, modifica lo spazio dati allocato per soddisfare i requisiti per l'intero stack di driver.
 
Il membro Offset specifica la quantità di spazio di contesto inutilizzato nella struttura NET_BUFFER_LIST_CONTEXT. Il membro Offset indica anche l'offset dall'inizio del membro ContextData all'inizio dello spazio dati di contesto usato.

I driver NDIS chiamano il Funzione NdisAllocateNetBufferListContext per allocare spazio buffer contiguo nella struttura NET_BUFFER_LIST_CONTEXT. Se necessario, NDIS alloca una nuova struttura NET_BUFFER_LIST_CONTEXT con spazio aggiuntivo per rispettare la richiesta. I driver NDIS chiamano il Funzione NdisFreeNetBufferListContext per liberare lo spazio del buffer.

Usare il NET_BUFFER_LIST_CONTEXT_DATA_SIZE macro per ottenere le dimensioni dello spazio di contesto usato. Usare il NET_BUFFER_LIST_CONTEXT_DATA_START macro per ottenere l'indirizzo iniziale dello spazio di contesto usato.

Per altre informazioni su come usare i buffer net, vedere architettura NET_BUFFER.

Requisiti

Requisito Valore
Client minimo supportato Supportato in NDIS 6.0 e versioni successive.
Intestazione ndis/nbl.h (include ndis.h)

Vedi anche

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT_DATA_SIZE NET_BUFFER_LIST_CONTEXT_DATA_START NdisAllocateNetBufferListContext NdisAllocateNetBufferListPool

NdisFreeNetBufferListContext