Partager via


FsRtlAllocatePoolWithQuotaTag, macro (ntifs.h)

La routine FsRtlAllocatePoolWithQuotaTag alloue de la mémoire du pool, en chargeant le quota par rapport au processus actuel.

Syntaxe

void FsRtlAllocatePoolWithQuotaTag(
  [in]  PoolType,
  [in]  NumberOfBytes,
  [in]  Tag
);

Paramètres

[in] PoolType

Type de pool à allouer. L’une des opérations suivantes :

  • NonPagedPool
  • pagedPool
  • nonPagedPoolCacheAligned
  • PagedPoolCacheAligned

Les types de pool NonPagedPoolMustSucceed et NonPagedPoolCacheAlignedMustS pool sont obsolètes et ne doivent plus être utilisés.

[in] NumberOfBytes

Nombre d’octets à allouer.

[in] Tag

Spécifie la balise de pool pour la mémoire allouée. Les pilotes spécifient normalement la balise de pool sous forme de chaîne d’un à quatre caractères ASCII 7 bits, délimités par des guillemets simples (par exemple, « abcd »). Ce paramètre est obligatoire et ne peut pas être égal à zéro.

Valeur de retour

Aucun

Remarques

Si un échec d’allocation de pool se produit, FsRtlAllocatePoolWithQuotaTag déclenche une exception STATUS_INSUFFICIENT_RESOURCES. Pour contrôler si cet échec d’allocation de pool se produit, le pilote doit encapsuler l’appel à FsRtlAllocatePoolWithQuotaTag dans une instruction try-except ou try-finally.

Le système associe la balise de pool spécifiée par le paramètre Tag à la mémoire tampon allouée. Les outils de programmation, tels que le débogueur Windows (WinDbg), peuvent afficher la balise de pool associée à chaque mémoire tampon allouée. La valeur de la balise de pool est normalement affichée dans l’ordre inverse. Par exemple, si un appelant passe « Fred » comme valeur du paramètre Balise, cette valeur apparaît sous la forme « derF » si le pool est vidé ou lors du suivi de l’utilisation du pool dans le débogueur.

Pour plus d’informations sur la gestion de la mémoire, consultez gestion de la mémoire.

Mémoire qui FsRtlAllocatePoolWithQuotaTag 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é).

Les appelants de FsRtlAllocatePoolWithQuotaTag doivent s’exécuter à l'<IRQL = DISPATCH_LEVEL. Un appelant à DISPATCH_LEVEL doit spécifier un NonPaged****XxxPoolType. Sinon, l’appelant doit s’exécuter à l'< DISPATCH_LEVEL IRQL.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête ntifs.h (include Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (voir la section Remarques)

Voir aussi

ExAllocatePoolWithQuotaTag

ExFreePool

FsRtlAllocatePoolWithQuota