POOL_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.

//
// POOL_FLAG values
//
// Low 32-bits of ULONG64 are for required parameters (allocation fails if they
// cannot be satisfied).
// High 32-bits of ULONG64 is for optional parameters (allocation succeeds if
// they cannot be satisfied or are unrecognized).
//

#define POOL_FLAG_REQUIRED_START          0x0000000000000001UI64
#define POOL_FLAG_USE_QUOTA               0x0000000000000001UI64     // Charge quota
#define POOL_FLAG_UNINITIALIZED           0x0000000000000002UI64     // Don't zero-initialize allocation
#define POOL_FLAG_SESSION                 0x0000000000000004UI64     // Use session specific pool
#define POOL_FLAG_CACHE_ALIGNED           0x0000000000000008UI64     // Cache aligned allocation
#define POOL_FLAG_RESERVED1               0x0000000000000010UI64     // Reserved for system use
#define POOL_FLAG_RAISE_ON_FAILURE        0x0000000000000020UI64     // Raise exception on failure
#define POOL_FLAG_NON_PAGED               0x0000000000000040UI64     // Non paged pool NX
#define POOL_FLAG_NON_PAGED_EXECUTE       0x0000000000000080UI64     // Non paged pool executable
#define POOL_FLAG_PAGED                   0x0000000000000100UI64     // Paged pool
#define POOL_FLAG_RESERVED2               0x0000000000000200UI64     // Reserved for system use
#define POOL_FLAG_RESERVED3               0x0000000000000400UI64     // Reserved for system use
#define POOL_FLAG_REQUIRED_END            0x0000000080000000UI64
#define POOL_FLAG_OPTIONAL_START          0x0000000100000000UI64
#define POOL_FLAG_SPECIAL_POOL            0x0000000100000000UI64     // Make special pool allocation
#define POOL_FLAG_OPTIONAL_END            0x8000000000000000UI64

Indicateurs requis

Les indicateurs requis doivent être reconnus et satisfaits par l’allocateur de pool. Si l’allocateur ne reconnaît pas l’indicateur ou ne peut pas effectuer une allocation satisfaisant tous les indicateurs requis, l’allocation échoue.

Nom Description
POOL_FLAG_USE_QUOTA Cet indicateur est passé 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 n’ont pas besoin de spécifier cet indicateur.
POOL_FLAG_UNINITIALIZED Laissez l’allocation non initialisée. Le contenu de l’allocation est indéterminant. Le pilote doit être extrêmement prudent pour ne jamais copier la mémoire non initialisée vers des destinations non approuvées (mode utilisateur, sur le réseau, etc.).
POOL_FLAG_SESSION Réservé au système d’exploitation.
POOL_FLAG_CACHE_ALIGNED Mettre en cache l’allocation du pool. Avertissement : cet indicateur est traité comme un effort optimal et ne doit pas être utilisé si des allocations alignées sur le cache sont requises pour l’exactitude du programme.
POOL_FLAG_RESERVED1 Réservé à un usage interne.
POOL_FLAG_RAISE_ON_FAILURE Déclenchez une exception si l’allocation ne peut pas être satisfaite.
POOL_FLAG_NON_PAGED Effectuez l’allocation dans le pool non paginé.
POOL_FLAG_NON_PAGED_EXECUTE Effectuez l’allocation dans le pool exécutable non paginé.
POOL_FLAG_PAGED Effectuez l’allocation dans le pool paginé. Ce fichier est exécutable sur x86, non exécutable sur toutes les autres plateformes.
POOL_FLAG_RESERVED2 Réservé à un usage interne.
POOL_FLAG_RESERVED3 Réservé à un usage interne.

Indicateurs facultatifs

Les indicateurs facultatifs sont satisfaits par l’allocateur de pool de manière opportuniste. Si l’allocateur ne reconnaît pas d’indicateur facultatif, il l’ignore. Si l’allocateur ne peut pas satisfaire un indicateur facultatif, il peut ou non réussir en fonction de la sémantique de l’indicateur spécifique.

Nom Description
POOL_FLAG_SPECIAL_POOL Effectuez l’allocation dans le pool spécial (utilisé pour le débogage). Si le pool spécial ne peut pas être utilisé, l’allocateur tente d’utiliser le pool normal.

Spécifications

En-tête : wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)

Voir aussi

ExAllocatePool2