structure NET_BUFFER_LIST_CONTEXT (ndis/nbl.h)

La structure NET_BUFFER_LIST_CONTEXT stocke les informations de contexte pour une structure de 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 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

Décalage, 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 dont un pilote a besoin.

Remarques

Chaque structure NET_BUFFER_LIST peut inclure une structure NET_BUFFER_LIST_CONTEXT prélocalisée. En tant que structure NET_BUFFER_LIST se déplace dans la pile des pilotes, la liste liée des structures NET_BUFFER_LIST_CONTEXT peut s’étendre pour prendre en charge des espaces de données supplémentaires 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élocaliser tout espace de données de contexte requis lorsque le pilote alloue un pool de structures NET_BUFFER_LIST. Pour prélocaliser cet espace de données, un pilote appelle le NdisAllocateNetBufferListPool , puis spécifie la quantité d’espace de données requis dans le paramètre ContextSize . La préallocation de cet espace de données permet à NDIS d’allouer de la mémoire dans les chemins de réception et d’envoi.
Note 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 la pile de pilotes entière.
 
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 l’espace tampon contigu dans la structure NET_BUFFER_LIST_CONTEXT. Si nécessaire, NDIS alloue une nouvelle structure de NET_BUFFER_LIST_CONTEXT avec un espace supplémentaire pour honorer la demande. Les pilotes NDIS appellent le Fonction NdisFreeNetBufferListContext pour libérer l’espace tampon.

Utilisez le NET_BUFFER_LIST_CONTEXT_DATA_SIZE macro pour obtenir la taille de l’espace de contexte utilisé. Utilisez 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 de mémoires tampons nettes, consultez NET_BUFFER Architecture.

Configuration requise

   
Client minimal pris en charge Pris en charge dans NDIS 6.0 et versions ultérieures.
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