Partager via


Fonction NdisAllocateBuffer (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.

NdisAllocateBuffer crée un descripteur de mémoire tampon mappant une (sous-plage) virtuelle spécifiée dans un bloc de mémoire non paginée déjà alloué.

Syntaxe

void NdisAllocateBuffer(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_BUFFER *Buffer,
  [in, optional] NDIS_HANDLE  PoolHandle,
  [in]           PVOID        VirtualAddress,
  [in]           UINT         Length
);

Paramètres

[out] Status

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne la status finale de l’allocation de mémoire tampon, ce qui est NDIS_STATUS_SUCCESS si elle a retourné un pointeur de descripteur de mémoire tampon valide sur Mémoire tampon et sinon NDIS_STATUS_FAILURE.

[out] Buffer

Pointeur vers une variable fournie par l’appelant dans laquelle cette fonction retourne un pointeur vers le descripteur de mémoire tampon alloué.

[in, optional] PoolHandle

Spécifie le handle retourné par un appel précédent à NdisAllocateBufferPool.

[in] VirtualAddress

Pointeur vers l’adresse virtuelle de base de la mémoire système allouée précédemment à mapper dans le descripteur de mémoire tampon retourné.

[in] Length

Spécifie le nombre d’octets à mapper.

Valeur de retour

None

Remarques

Valeur de retour : aucune

NdisAllocateBuffer alloue le stockage pour et initialise un descripteur de mémoire tampon pour mapper une plage spécifiée de mémoire précédemment allouée, telle que la mémoire utilisée pour un en-tête de paquet ou une mémoire tampon de réception de carte réseau.

L’allocation de descripteur de mémoire tampon s’appuie sur le pool de mémoires tampons créé par NdisAllocateBufferPool . Un pilote peut appeler NdisAllocateBuffer autant de fois que nécessaire pour allouer les descripteurs de mémoire tampon dont il a besoin s’il a appelé NdisAllocateBufferPool pendant l’initialisation.

Tous les pilotes NDIS de niveau inférieur doivent allouer tous les descripteurs de mémoire tampon qu’ils chaînent aux paquets du pool de mémoires tampons. Seuls les pilotes de protocole de niveau supérieur peuvent recevoir des descripteurs dépendant du système d’exploitation mappant des plages de mémoire virtuelle et, 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 NdisXxx .

Configuration requise

Condition requise Valeur
En-tête ndis.h (inclure Ndis.h)
Bibliothèque Ndis.lib
IRQL IRQL <= DISPATCH_LEVEL

Voir aussi