ExAllocatePoolQuotaUninitialized, fonction (wdm.h)

La routine ExAllocatePoolQuotaUninitialized alloue la mémoire du pool, en facturant le quota par rapport au processus en cours.

Cette routine est un wrapper et une option de remplacement pour ExAllocatePoolWithQuotaTag. Les fonctionnalités sont les mêmes.

Syntaxe

PVOID ExAllocatePoolQuotaUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag
);

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.

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. Spécifiez la balise de pool sous la forme d’un littéral de caractères non nuls d’un à quatre caractères délimités par des guillemets simples (par exemple, Tag1). La chaîne est généralement spécifiée dans l’ordre inverse (par exemple, 1gaT). Chaque caractère ASCII de la balise doit être une valeur dans la plage 0x20 (espace) à 0x7E (tilde). Chaque chemin de code d’allocation doit utiliser une balise de pool unique pour aider les débogueurs et les vérificateurs à identifier le chemin du code.

Valeur retournée

ExAllocatePoolQuotaUninitialized retourne un pointeur vers le pool alloué.

Si la demande ne peut pas être satisfaite, ExAllocatePoolQuotaUninitialized lève une exception, sauf si POOL_QUOTA_FAIL_INSTEAD_OF_RAISE est spécifié. L’utilisation de POOL_QUOTA_FAIL_INSTEAD_OF_RAISE est recommandée pour des raisons de performances.

Remarques

Cette routine est appelée par les pilotes de niveau supérieur qui allouent de la mémoire pour répondre à une demande dans le contexte du processus qui a initialement effectué la demande d’E/S. Les pilotes de niveau inférieur appellent à la place ExAllocatePoolUninitialized .

La mémoire allouée par ExAllocatePoolQuotaUninitialized n’est pas 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 plus d’informations, consultez la section Remarques de ExAllocatePoolWithQuotaTag .

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 IRQL <= DISPATCH_LEVEL (voir la section Remarques)
Règles de conformité DDI HwStorPortProhibitedDDIs, SpNoWait, StorPortStartIo

Voir aussi

ExAllocatePoolQuotaZero

ExAllocatePoolWithQuotaTag