Partager via


NdisFreeMemory, fonction (ndis.h)

La fonction NdisFreeMemory libère un bloc de mémoire précédemment alloué avec la fonction NdisAllocateMemoryWithTagPriority.

Syntaxe

void NdisFreeMemory(
  [in] PVOID VirtualAddress,
  [in] UINT  Length,
  [in] UINT  MemoryFlags
);

Paramètres

[in] VirtualAddress

Pointeur vers l’adresse virtuelle de base de la mémoire allouée. Cette adresse a été retournée par la fonction NdisAllocateMemoryWithTagPriority.

[in] Length

Taille, en octets, du bloc de mémoire à libérer. Si la mémoire a été allouée avec NdisAllocateMemoryWithTagPriority ou si le paramètre MemoryFlags est égal à zéro, ce paramètre est ignoré.

[in] MemoryFlags

Ensemble d’indicateurs qui spécifient le type de mémoire à libérer. Cette valeur doit être égale à zéro si la mémoire a été allouée avec NdisAllocateMemoryWithTagPriority. Avec NDIS 6.0 et versions ultérieures, le NdisAllocateMemoryWithTagPriority est toujours utilisé pour allouer de la mémoire.

Valeur de retour

Aucun

Remarques

Étant donné que la mémoire non mise en cache et la mémoire contiguë sont rarement libérées jusqu’à ce que le pilote miniport d’allocation soit déchargé, un appelant de NdisFreeMemory est généralement en cours d’exécution à IRQL = PASSIVE_LEVEL pour ces types de désallocations. Dans tous les cas :

  • Lors de la libération de la mémoire contiguë, un appelant de NdisFreeMemory doit s’exécuter à IRQL = PASSIVE_LEVEL.
  • Lors de la libération de la mémoire non mise en cache, un appelant de NdisFreeMemory doit s’exécuter au < DISPATCH_LEVEL IRQL.
  • Lors de la libération de la mémoire qui n’est ni contiguë ni non mise en cache, un appelant de NdisFreeMemory doit s’exécuter à IRQL <= DISPATCH_LEVEL.

Exigences

Exigence Valeur
client minimum pris en charge Pris en charge pour les pilotes NDIS 6.0 et NDIS 5.1 (voir NdisFreeMemory (NDIS 5.1)) dans Windows Vista. Pris en charge pour les pilotes NDIS 5.1 (voir NdisFreeMemory (NDIS 5.1)) dans Windows XP.
plateforme cible Universel
d’en-tête ndis.h (include Ndis.h)
bibliothèque Ndis.lib
IRQL Voir la section Remarques
règles de conformité DDI Irql_Miscellaneous_Function(ndis), NdisAllocateMemoryWithTagPriority_Cleanup(ndis), NdisAllocateMemoryWithTagPriority_InitFail(ndis), NdisQueryBindInstanceName(ndis)

Voir aussi

MiniportHaltEx

NdisAllocateMemoryWithTagPriority