Partager via


structure NET_BUFFER_LIST_CONTEXT (ndis/nbl.h)

La structure NET_BUFFER_LIST_CONTEXT stocke les informations de contexte d’une structure NET_BUFFER_LIST.

Syntaxe

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;

Membres

Next

Pointeur vers la structure de NET_BUFFER_LIST_CONTEXT suivante dans une liste liée de structures NET_BUFFER_LIST_CONTEXT.

Size

Taille, en octets, de l’espace de contexte entier dans la structure NET_BUFFER_LIST_CONTEXT, y compris l’espace de contexte utilisé et inutilisé.

Offset

Offset, en octets, du début de la mémoire tampon de données de contexte au début des données de contexte dans la structure NET_BUFFER_LIST_CONTEXT. Le membre Offset spécifie également la taille en octets de l’espace de contexte inutilisé dans la structure NET_BUFFER_LIST_CONTEXT.

ContextData

Mémoire tampon de données de contexte. Les données de contexte peuvent inclure toutes les informations requises par un pilote.

Remarques

Chaque structure NET_BUFFER_LIST peut inclure une structure NET_BUFFER_LIST_CONTEXT préallouée. En tant que structure NET_BUFFER_LIST se déplace dans la pile des pilotes, la liste liée de structures NET_BUFFER_LIST_CONTEXT peut s’étendre pour prendre en charge un espace de données supplémentaire pour chaque pilote.

Les pilotes doivent utiliser les macros et fonctions NDIS suivantes pour accéder aux membres et les manipuler dans une structure NET_BUFFER_LIST_CONTEXT :

Le membre ContextData de la structure NET_BUFFER_LIST_CONTEXT spécifie la partie données de la structure NET_BUFFER_LIST_CONTEXT. Pour améliorer les performances du système, un pilote doit préallouer tout espace de données de contexte requis lorsque le pilote alloue un pool de structures NET_BUFFER_LIST. Pour préallouer cet espace de données, un pilote appelle le fonction NdisAllocateNetBufferListPool, puis spécifie la quantité d’espace de données requis dans le paramètre ContextSize ContextSize. La prélocalisation de cet espace de données permet à NDIS d’allouer de la mémoire dans les chemins de réception et d’envoi.
Remarque NDIS estime l’espace de données de contexte requis et, si nécessaire, ajuste l’espace de données alloué pour répondre aux exigences de l’ensemble de la pile des pilotes.
 
Le membre Offset spécifie la quantité d’espace de contexte inutilisé dans la structure NET_BUFFER_LIST_CONTEXT. Le membre Offset indique également le décalage du début du membre ContextData au début de l’espace de données de contexte utilisé.

Les pilotes NDIS appellent le fonction NdisAllocateNetBufferListContext pour allouer de l’espace tampon contigu dans la structure NET_BUFFER_LIST_CONTEXT. Si nécessaire, NDIS alloue une nouvelle structure NET_BUFFER_LIST_CONTEXT avec un espace supplémentaire pour respecter la demande. Les pilotes NDIS appellent le fonction NdisFreeNetBufferListContext pour libérer l’espace tampon.

Utiliser le NET_BUFFER_LIST_CONTEXT_DATA_SIZE macro pour obtenir la taille de l’espace de contexte utilisé. Utiliser le NET_BUFFER_LIST_CONTEXT_DATA_START macro pour obtenir l’adresse de départ de l’espace de contexte utilisé.

Pour plus d’informations sur l’utilisation des mémoires tampons nettes, consultez NET_BUFFER Architecture.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge dans NDIS 6.0 et versions ultérieures.
d’en-tête ndis/nbl.h (include ndis.h)

Voir aussi

NET_BUFFER

NET_BUFFER_LIST

NET_BUFFER_LIST_CONTEXT_DATA_SIZE NET_BUFFER_LIST_CONTEXT_DATA_START NdisAllocateNetBufferListContext NdisAllocateNetBufferListPool

NdisFreeNetBufferListContext