Macro FsRtlAllocatePoolWithTag (ntifs.h)
La routine FsRtlAllocatePoolWithTag alloue de la mémoire du pool.
Syntaxe
void FsRtlAllocatePoolWithTag(
[in] PoolType,
[in] NumberOfBytes,
[in] Tag
);
Paramètres
[in] PoolType
Type de pool à allouer. Celui-ci peut avoir l'une des valeurs suivantes :
- NonPagedPool
- PagedPool
- NonPagedPoolCacheAligned
- PagedPoolCacheAligned
Les types de pool NonPagedPoolMustSucceed et NonPagedPoolCacheAlignedMustS sont obsolètes et ne doivent plus être utilisés.
[in] NumberOfBytes
Nombre d’octets à allouer. Ce paramètre est obligatoire et ne peut pas être égal à zéro.
[in] Tag
Spécifie la balise de pool pour la mémoire allouée. Les pilotes spécifient normalement la balise de pool sous la forme d’une chaîne d’un à quatre caractères ASCII 7 bits, délimités par des guillemets uniques (par exemple, « abcd »). Ce paramètre est obligatoire et ne peut pas être égal à zéro.
Valeur de retour
None
Remarques
Si un échec d’allocation de pool se produit, FsRtlAllocatePoolWithTag 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 à FsRtlAllocatePoolWithTag 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 Tag , cette valeur s’affiche 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.
La mémoire allouée par FsRtlAllocatePoolWithTag 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 (afin d’éviter toute fuite de contenu potentiellement privilégié).
Les appelants de FsRtlAllocatePoolWithTag doivent être en cours d’exécution à IRQL <= DISPATCH_LEVEL. Un appelant à DISPATCH_LEVEL doit spécifier un poolTypeXxxnon paginé. Sinon, l’appelant doit être en cours d’exécution à IRQL <= APC_LEVEL.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | ntifs.h (inclure Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (voir la section Remarques) |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour