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) |