Condividi tramite


POOL_FLAGS

Valore tipizzato ULONG64 che specifica il tipo di memoria del pool insieme agli attributi obbligatori e facoltativi. È possibile combinare più valori di flag usando OR bit-wise.

//
// 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

Flag obbligatori

I flag obbligatori devono essere riconosciuti e soddisfatti dall'allocatore del pool. Se l'allocatore non riconosce il flag o non può rendere un'allocazione soddisfacente per tutti i flag necessari, l'allocazione ha esito negativo.

Nome Descrizione
POOL_FLAG_USE_QUOTA Questo flag viene passato dai driver di livello più alto che allocano memoria per soddisfare una richiesta nel contesto del processo che ha originariamente effettuato la richiesta di I/O. I driver di livello inferiore non devono specificare questo flag.
POOL_FLAG_UNINITIALIZED Lasciare l'allocazione non inizializzata. Il contenuto dell'allocazione è indeterminato. Il driver deve prestare molta attenzione a non copiare mai la memoria non inizializzata in destinazioni non attendibili (modalità utente, rete e così via).
POOL_FLAG_SESSION Riservato per il sistema operativo.
POOL_FLAG_CACHE_ALIGNED Allineare la cache all'allocazione del pool. Avviso: questo flag viene considerato come un'operazione ottimale e non deve essere usato se sono necessarie allocazioni allineate alla cache per la correttezza del programma.
POOL_FLAG_RESERVED1 Riservato per utilizzo interno.
POOL_FLAG_RAISE_ON_FAILURE Generare un'eccezione se l'allocazione non può essere soddisfatta.
POOL_FLAG_NON_PAGED Effettuare l'allocazione nel pool non di paging.
POOL_FLAG_NON_PAGED_EXECUTE Eseguire l'allocazione nel pool di eseguibili non di paging.
POOL_FLAG_PAGED Effettuare l'allocazione nel pool di paging. Questo file è eseguibile in x86, non eseguibile in tutte le altre piattaforme.
POOL_FLAG_RESERVED2 Riservato per utilizzo interno.
POOL_FLAG_RESERVED3 Riservato per utilizzo interno.

Flag facoltativi

I flag facoltativi vengono soddisfatti dall'allocatore pool in modo opportunistico. Se l'allocatore non riconosce un flag facoltativo, lo ignora. Se l'allocatore non può soddisfare un flag facoltativo, può avere esito positivo o negativo a seconda della semantica del flag specifico.

Nome Descrizione
POOL_FLAG_SPECIAL_POOL Effettuare l'allocazione nel pool speciale (usato per il debug). Se non è possibile usare il pool speciale, l'allocatore tenterà di usare il pool normale.

Requisiti

Intestazione: wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Wudfwdm.h)

Vedere anche

ExAllocatePool2