Macro FsRtlAllocatePoolWithTag (ntifs.h)
La routine fsRtlAllocatePoolWithTag
Sintassi
void FsRtlAllocatePoolWithTag(
[in] PoolType,
[in] NumberOfBytes,
[in] Tag
);
Parametri
[in] PoolType
Tipo di pool da allocare. Uno dei seguenti:
- NonPagedPool
- PagedPool
- NonPagedPoolCacheAligned
- pagedPoolCacheAligned
I nonPagedPoolMustSucceed e nonPagedPoolCacheAlignedMustS tipi di pool sono obsoleti e non devono più essere usati.
[in] NumberOfBytes
Numero di byte da allocare. Questo parametro è obbligatorio e non può essere zero.
[in] Tag
Specifica il tag del pool per la memoria allocata. I driver specificano in genere il tag del pool come stringa da uno a quattro caratteri ASCII a 7 bit, delimitati da virgolette singole ,ad esempio 'abcd'. Questo parametro è obbligatorio e non può essere zero.
Valore restituito
Nessuno
Osservazioni
Se si verifica un errore di allocazione del pool, FsRtlAllocatePoolWithTag genera un'eccezione STATUS_INSUFFICIENT_RESOURCES. Per controllare se si verifica questo errore di allocazione del pool, il driver deve eseguire il wrapping della chiamata a FsRtlAllocatePoolWithTag in un try-except o istruzione try-finally.
Il sistema associa il tag del pool specificato dal parametro tag
Per altre informazioni sulla gestione della memoria, vedere Memory Management.
La memoria che FsRtlAllocatePoolWithTag alloca non è inizializzata. 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).
I chiamanti di FsRtlAllocatePoolWithTag devono essere in esecuzione in IRQL <= DISPATCH_LEVEL. Un chiamante in DISPATCH_LEVEL deve specificare un NonPagedXxxPoolType. In caso contrario, il chiamante deve essere in esecuzione in IRQL <= APC_LEVEL.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione |
ntifs.h (include Ntifs.h) |
libreria |
NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (vedere la sezione Osservazioni) |