Partager via


ExAllocatePoolPriorityUninitialized, fonction (wdm.h)

Cette routine est une option de wrapper et 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 du 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 un bit-OR avec l’indicateur de POOL_RAISE_IF_ALLOCATION_FAILURE défini dans wdm.h. Cet indicateur déclenche une exception si la demande ne peut pas être satisfaite. L’utilisation de cet indicateur n’est pas recommandée, car il est coûteux.

De même, vous pouvez modifier la valeur PoolType par bitwise-ORing cette valeur avec l’indicateur de POOL_COLD_ALLOCATION (également défini dans wdm.h) comme indicateur au noyau pour allouer la mémoire à partir de pages susceptibles d’être paginé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 avis.

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 de ExAllocatePoolWithTag.

Priority

Valeur d’énumération EX_POOL_PRIORITY spécifiant la priorité de cette requête.

Valeur de retour

ExAllocatePoolPriorityUninitialized retourne NULL s’il existe une mémoire insuffisante dans le pool libre pour satisfaire la requête, sauf si POOL_RAISE_IF_ALLOCATION_FAILURE est spécifié. Sinon, la routine retourne un pointeur vers la mémoire allouée.

Remarques

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

Consultez la section Remarques de ExAllocatePoolWithTagPriority pour obtenir des conseils supplémentaires.

Exigences

Exigence Valeur
client minimum 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 Universel
d’en-tête wdm.h (include 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 HwStorPortProhibitedDDIs, IrqlExAllocatePool, IrqlExFree2, SpNoWait, StorPortStartIo

Voir aussi

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero