Condividi tramite


Funzione ExAllocatePoolQuotaUninitialized (wdm.h)

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

Questa routine è un'opzione wrapper e di sostituzione per ExAllocatePoolWithQuotaTag. Non esiste alcuna differenza nella 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 bit per bit con questo valore con il flag POOL_COLD_ALLOCATION (definito anche in wdm.h) come suggerimento al kernel per allocare la memoria dalle pagine che è probabile che vengano 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 di 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 compreso nell'intervallo 0x20 (spazio) per 0x7E (tilde). Ogni percorso del codice di allocazione deve usare un tag pool univoco per aiutare i debugger e i verificatori a 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.

Osservazioni

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

La memoria che ExAllocatePoolQuotaUninitialized alloca viene annullata. Un driver in modalità kernel deve prima zero questa memoria se lo rende visibile al software in modalità utente (per evitare la perdita di contenuti potenzialmente privilegiati)

Per altre indicazioni, vedere la sezione osservazioni di ExAllocatePoolWithQuotaTag.

Fabbisogno

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

Vedere anche

exAllocatePoolQuotaZero

exAllocatePoolWithQuotaTag