Partager via


Gestion de la mémoire tampon du pilote de protocole

Un pilote de protocole doit gérer NET_BUFFER_LIST pools de structures et NET_BUFFER pools de structures pour les opérations d’envoi. Pour créer ces pools, les pilotes appellent les fonctions suivantes :

NdisAllocateNetBufferListPool

NdisAllocateNetBufferPool

Les pilotes de protocole peuvent utiliser les fonctions suivantes pour allouer des structures à partir des pools :

NdisAllocateNetBufferAndNetBufferList

NdisAllocateNetBufferList

NdisAllocateNetBuffer

L’appel de NdisAllocateNetBufferAndNetBufferList est plus efficace que NdisAllocateNetBufferList suivi de NdisAllocateNetBuffer. Toutefois, NdisAllocateNetBufferAndNetBufferList ne crée qu’une seule structure NET_BUFFER sur la structure NET_BUFFER_LIST. Pour utiliser NdisAllocateNetBufferAndNetBufferList, le pilote doit définir le paramètre AllocateNetBuffer sur TRUE lorsqu’il appelle NdisAllocateNetBufferListPool.

Les pilotes de protocole peuvent utiliser des requêtes OID pour interroger les exigences de remplissage et d’espace de contexte des pilotes sous-jacents. Un pilote de protocole doit déterminer les exigences de remplissage et de contexte pour une liaison dans les états Ouverture ou Redémarrage . Le pilote doit allouer suffisamment d’espace de remplissage et de contexte pour l’ensemble de la pile. Si nécessaire, un pilote de protocole peut libérer les pools et les réallouer dans l’état Redémarrage .

Les pilotes de protocole utilisent les fonctions suivantes pour libérer les pools :

NdisFreeNetBufferListPool

NdisFreeNetBufferPool.

Les pilotes de protocole utilisent les fonctions suivantes pour libérer les structures allouées à partir des pools :

NdisFreeNetBufferList

NdisFreeNetBuffer

Les pilotes doivent libérer NET_BUFFER structures allouées avec NdisAllocateNetBuffer avant de libérer la structure de NET_BUFFER_LIST associée. NET_BUFFER structures allouées avec NdisAllocateNetBufferAndNetBufferList sont libérées lorsque le pilote appelle NdisFreeNetBufferList pour la structure de NET_BUFFER_LIST associée.