Condividi tramite


Funzione ExAllocatePoolQuotaUninitialized (wdm.h)

La routine ExAllocatePoolQuotaUninitialized alloca la memoria del pool, caricando la quota rispetto al processo corrente.

Questa routine è un'opzione wrapper e sostituzione per ExAllocatePoolWithQuotaTag. Non esistono differenze in termini di funzionalità.

Sintassi

PVOID ExAllocatePoolQuotaUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag
);

Parametri

PoolType

Tipo di memoria del pool da allocare. Per una descrizione dei tipi di memoria del pool disponibili, vedere POOL_TYPE.

Analogamente, è possibile modificare il valore PoolType in bit per bit-ORing con il flag POOL_COLD_ALLOCATION (definito anche in wdm.h) come suggerimento per il kernel per allocare la memoria dalle pagine che probabilmente verranno visualizzate rapidamente. Per ridurre la quantità di memoria del pool residente il più possibile, non è consigliabile fare riferimento a queste allocazioni di frequente. Il flag POOL_COLD_ALLOCATION è solo consultivo.

NumberOfBytes

Numero di byte da allocare.

Tag

Tag del pool da usare per la memoria allocata. Specificare il tag del pool come valore letterale carattere diverso da zero da uno a quattro caratteri delimitati da virgolette singole (ad esempio, Tag1). La stringa viene in genere specificata in ordine inverso , ad esempio 1gaT. Ogni carattere ASCII nel tag deve essere un valore nell'intervallo 0x20 (spazio) per 0x7E (tilde). Ogni percorso del codice di allocazione deve usare un tag di pool univoco per consentire ai debugger e ai verificatori di identificare il percorso del codice.

Valore restituito

ExAllocatePoolQuotaUninitialized restituisce un puntatore al pool allocato.

Se la richiesta non può essere soddisfatta, ExAllocatePoolQuotaUninitialized genera un'eccezione a meno che non venga specificata POOL_QUOTA_FAIL_INSTEAD_OF_RAISE. L'uso di POOL_QUOTA_FAIL_INSTEAD_OF_RAISE è preferibile per motivi di prestazioni.

Commenti

Questa routine viene chiamata 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 chiamano invece ExAllocatePoolUninitialized .

La memoria allocata exAllocatePoolQuotaUninitialized non è inizializzata. Un driver in modalità kernel deve prima zero questa memoria se lo rende visibile al software in modalità utente (per evitare perdite di contenuti potenzialmente privilegiati)

Per altre indicazioni, vedere la sezione Osservazioni di ExAllocatePoolWithQuotaTag .

Requisiti

Requisito Valore
Client minimo supportato Richiede WDK per Windows 10 versione 2004. È destinato a Windows 7 e versioni successive del sistema operativo Windows.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL IRQL <= DISPATCH_LEVEL (vedere la sezione Osservazioni)
Regole di conformità DDI HwStorPortProhibitedDDIs, SpNoWait, StorPortStartIo

Vedi anche

ExAllocatePoolQuotaZero

ExAllocatePoolWithQuotaTag