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 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 non utilisé.

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 requises par un pilote.

Remarques

Chaque structure NET_BUFFER_LIST peut inclure une structure de NET_BUFFER_LIST_CONTEXT préallouée. À mesure qu’une structure NET_BUFFER_LIST traverse la pile de pilotes, la liste liée des structures de 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 d’une structure NET_BUFFER_LIST_CONTEXT et les manipuler :

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 quand le pilote alloue un pool de structures NET_BUFFER_LIST. Pour préallouer cet espace de données, un pilote appelle le NdisAllocateNetBufferListPool, puis spécifie la quantité d’espace de données nécessaire dans le paramètre ContextSize . La préallocation de cet espace de données évite à 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 l’ensemble de la pile de 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 entre le début du membre ContextData et le 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 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 des mémoires tampons réseau, consultez architecture NET_BUFFER.

Configuration requise

Condition requise Valeur
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