NdisAllocateBufferPool, fonction (ndis.h)

Note NDIS 5. x a été déconseillé et est remplacé par NDIS 6. x. Pour le développement de nouveaux pilotes NDIS, consultez Pilotes réseau à partir de Windows Vista. Pour plus d’informations sur le portage de NDIS 5. x pilotes dans NDIS 6. x, consultez Portage des pilotes NDIS 5.x vers NDIS 6.0.

Cette fonction retourne un handle avec lequel l’appelant peut allouer des descripteurs de mémoire tampon en appelant la fonction NdisAllocateBuffer .

Syntaxe

void NdisAllocateBufferPool(
  [out] PNDIS_STATUS Status,
  [out] PNDIS_HANDLE PoolHandle,
  [in]  UINT         NumberOfDescriptors
);

Paramètres

[out] Status

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne la status finale de l’allocation du pool de mémoires tampons.

[out] PoolHandle

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne un handle au pool de mémoires tampons. Ce handle est un paramètre obligatoire pour les fonctions de mémoire tampon NDIS que le pilote appelle par la suite.

[in] NumberOfDescriptors

Spécifie le nombre de descripteurs de mémoire tampon que l’appelant s’attend à allouer à partir du pool de mémoires tampons sans relâcher les descripteurs de mémoire tampon alloués dans le pool.

Valeur de retour

None

Remarques

Retourne toujours NDIS_STATUS_SUCCESS.

Une fois cette fonction retournée, le pilote appelle la fonction NdisAllocateBuffer une ou plusieurs fois pour allouer les descripteurs de mémoire tampon dont elle a besoin. Un pilote doit appeler cette fonction pendant l’initialisation.

Le paramètre NumberOfDescriptors spécifié par un pilote de carte réseau dépend généralement des fonctionnalités de la carte réseau. Par exemple, le pilote d’un bus master carte réseau DMA avec des mémoires tampons en anneau spécifie au moins un NombreOfDescripteurs suffisamment grand pour mapper l’anneau complet.

Les numberOfDescriptors spécifiés dans l’appel à cette fonction constituent la limite effective du nombre de fois où le pilote peut appeler NdisAllocateBuffer avant d’appeler la fonction NdisFreeBuffer pour renvoyer un descripteur de mémoire tampon à la liste gratuite du pool de mémoires tampons.

Lorsqu’un pilote n’a plus besoin du pool de mémoires tampons alloué, il appelle la fonction NdisFreeBufferPool pour libérer le handle du pool de mémoires tampons.

Le pilote doit libérer tout verrou de rotation qu’il tient avant d’appeler cette fonction.

Tous les pilotes NDIS de niveau inférieur doivent allouer tous les descripteurs de mémoire tampon qu’ils chaînent aux paquets d’un pool de mémoires tampons. Seuls les pilotes de protocole de plus haut niveau peuvent recevoir des descripteurs dépendant du système d’exploitation mappant des plages de mémoire virtuelle. Si ces descripteurs de mémoire sont équivalents aux descripteurs de mémoire tampon NDIS, un protocole de niveau supérieur peut passer ces descripteurs en tant que paramètres aux fonctions NDIS.

Versions du système d’exploitation : Windows CE .NET 4.0 et versions ultérieures.

Configuration requise

Condition requise Valeur
En-tête ndis.h
IRQL IRQL <= DISPATCH_LEVEL

Voir aussi