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

None

Remarques

Étant donné que la mémoire non mise en cache et la mémoire contiguë sont rarement libérées tant que le pilote miniport d’allocation n’est pas déchargé, un appelant de NdisFreeMemory s’exécute généralement à 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 être en cours d’exécution à IRQL = PASSIVE_LEVEL.
  • Lors de la libération de la mémoire non mise en cache, un appelant de NdisFreeMemory doit être en cours d’exécution 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.

Configuration requise

Condition requise Valeur
Client minimal 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 (consultez NdisFreeMemory (NDIS 5.1)) dans Windows XP.
Plateforme cible Universal
En-tête ndis.h (inclure 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