Funzione FsRtlAllocateAePushLock (ntifs.h)

FsRtlAllocateAePushLock alloca e inizializza un blocco push con espansione automatica.

Sintassi

PVOID FsRtlAllocateAePushLock(
  [in] POOL_TYPE PoolType,
  [in] ULONG     Tag
);

Parametri

[in] PoolType

Tipo di memoria del pool da allocare per il blocco push con espansione automatica. Per una descrizione dei tipi di memoria del pool disponibili , vedere POOL_TYPE . È possibile modificare il valore PoolType bit per bit-ORing con il flag POOL_RAISE_IF_ALLOCATION_FAILURE. Questo flag fa sì che venga generata un'eccezione se la richiesta di allocazione non può essere soddisfatta.

[in] 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

FsRtlAllocateAePushLock restituisce NULL se nel pool libero non è presente memoria sufficiente per soddisfare la richiesta. In caso contrario, la routine restituisce un puntatore al blocco push di espansione automatica allocato e inizializzato.

Commenti

FsRtlAllocateAePushLock viene usato per allocare la memoria del pool per un blocco push con espansione automatica. Per altre informazioni sui blocchi push con espansione automatica, vedere FSRTL_ADVANCED_FCB_HEADER.

Il sistema associa il tag del pool alla memoria allocata. Gli strumenti di programmazione, ad esempio WinDbg, possono visualizzare il tag del pool associato a ogni buffer allocato. Gflags, uno strumento incluso in Strumenti di debug per Windows, attiva una funzionalità di sistema che richiede l'allocazione da un pool speciale per un tag di pool specifico. Poolmon, incluso in WDK, tiene traccia della memoria in base al tag del pool.

Il chiamante di FsRtlAllocateAePushLock deve successivamente chiamare FsRtlFreeAePushLock per liberare il blocco push con espansione automatica allocata.

Il sistema imposta automaticamente determinati oggetti evento standard quando la quantità di pool (paging o non di paging) è elevata o bassa. I driver possono attendere che questi eventi ottimizzano l'utilizzo del pool. Per altre informazioni, vedere Oggetti evento standard.

Requisiti

Requisito Valore
Client minimo supportato Windows 10, versione 20H2
Intestazione ntifs.h
IRQL <= APC_LEVEL

Vedi anche

FSRTL_ADVANCED_FCB_HEADER

FsRtlFreeAePushLock

FsRtlSetupAdvancedHeaderEx2