Fonction ExAllocatePool3 (wdm.h)

La routine ExAllocatePool3 alloue la mémoire du pool du type spécifié et retourne un pointeur vers le bloc alloué. Cette routine est similaire à ExAllocatePool2 , mais elle ajoute des paramètres étendus.

Syntaxe

DECLSPEC_RESTRICT PVOID ExAllocatePool3(
  POOL_FLAGS                Flags,
  SIZE_T                    NumberOfBytes,
  ULONG                     Tag,
  PCPOOL_EXTENDED_PARAMETER ExtendedParameters,
  ULONG                     ExtendedParametersCount
);

Paramètres

Flags

Valeur de type ULONG64 spécifiant le type de mémoire du pool ainsi que les attributs obligatoires et facultatifs. Plusieurs valeurs d’indicateur peuvent être combinées à l’aide de OR au niveau du bit. Consultez POOL_FLAGS pour connaître les valeurs possibles.

NumberOfBytes

Spécifie un nombre d’octets autre que zéro à 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.

ExtendedParameters

Pointeur vers un tableau de structures POOL_EXTENDED_PARAMETER qui spécifient des attributs supplémentaires pour l’allocation.

ExtendedParametersCount

Valeur ULONG spécifiant le nombre de paramètres dans ExtendedParameters.

Valeur retournée

ExAllocatePool3 retourne un pointeur vers la mémoire allouée.

Les conditions suivantes entraînent le retour de la fonction NULL par défaut. Si POOL_FLAG_RAISE_ON_FAILURE est spécifié, la fonction lève une exception.

  • Mémoire insuffisante
  • La balise est définie sur 0 ou POOL_FLAGS non valides sont spécifiées
  • Structures de POOL_EXTENDED_PARAMETER non valides

Remarques

Si vous créez un pilote qui cible les versions de Windows antérieures à Windows 10, version 2004, utilisez ExAllocatePoolPriorityZero ou ExAllocatePoolPriorityUninitialized.

Pour plus d’informations, consultez les remarques d’ExAllocatePool2 .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 2004
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 HwStorPortProhibitedDDIs, SpNoWait, StorPortStartIo

Voir aussi

ExAllocatePool2