Partager via


ExAllocatePoolPriorityUninitialized, fonction (wdm.h)

Cette routine est un wrapper et une option de remplacement pour ExAllocatePoolWithTagPriority.

ExAllocatePoolPriorityUninitialized alloue la mémoire du pool du type spécifié.

Syntaxe

PVOID ExAllocatePoolPriorityUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag,
  EX_POOL_PRIORITY                               Priority
);

Paramètres

PoolType

Type de mémoire de pool à allouer. Pour obtenir une description des types de mémoire de pool disponibles, consultez POOL_TYPE.

Vous pouvez modifier la valeur d’énumération en effectuant une opération OR au niveau du bit avec l’indicateur POOL_RAISE_IF_ALLOCATION_FAILURE défini dans wdm.h. Cet indicateur entraîne le déclenchement d’une exception si la demande ne peut pas être satisfaite. L’utilisation de cet indicateur n’est pas recommandée, car elle est coûteuse.

De même, vous pouvez modifier la valeur PoolType en oRingant cette valeur au niveau du bit avec l’indicateur POOL_COLD_ALLOCATION (également défini dans wdm.h) comme indicateur pour le noyau pour allouer la mémoire à partir de pages susceptibles d’être supprimées rapidement. Pour réduire autant que possible la quantité de mémoire du pool résident, vous ne devez pas référencer ces allocations fréquemment. L’indicateur POOL_COLD_ALLOCATION n’est qu’un avertissement.

NumberOfBytes

Nombre d'octets à allouer.

Tag

Balise de pool à utiliser pour la mémoire allouée. Pour plus d’informations, consultez le paramètre Tag d’ExAllocatePoolWithTag.

Priority

Valeur d’énumération EX_POOL_PRIORITY spécifiant la priorité de cette demande.

Valeur retournée

ExAllocatePoolPriorityUninitialized retourne null si la mémoire dans le pool libre est insuffisante pour répondre à la demande, sauf si POOL_RAISE_IF_ALLOCATION_FAILURE est spécifié. Sinon, la routine retourne un pointeur vers la mémoire allouée.

Remarques

La mémoire allouée par ExAllocatePoolPriorityUninitialized est non initialisée. Un pilote en mode noyau doit d’abord zéro cette mémoire s’il veut la rendre visible pour les logiciels en mode utilisateur (pour éviter la fuite de contenu potentiellement privilégié)

Pour obtenir des conseils supplémentaires, consultez la section Remarques de ExAllocatePoolWithTagPriority .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Nécessite WDK pour Windows 10 version 2004. Cible Windows 7 et versions ultérieures du système d’exploitation Windows.
Plateforme cible Universal
En-tête wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (voir la section Remarques)
Règles de conformité DDI HwStorPortProhibitedDIs, IrqlExAllocatePool, IrqlExFree2, SpNoWait, StorPortStartIo

Voir aussi

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero