Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La routine ExAllocatePool3 alloca la memoria del pool del tipo specificato e restituisce un puntatore al blocco allocato. Questa routine è simile a exAllocatePool2 ma aggiunge parametri estesi.
Sintassi
DECLSPEC_RESTRICT PVOID ExAllocatePool3(
POOL_FLAGS Flags,
SIZE_T NumberOfBytes,
ULONG Tag,
PCPOOL_EXTENDED_PARAMETER ExtendedParameters,
ULONG ExtendedParametersCount
);
Parametri
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. Per i valori possibili, vedere POOL_FLAGS.
NumberOfBytes
Specifica un numero diverso da zero 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.
ExtendedParameters
Puntatore a una matrice di strutture POOL_EXTENDED_PARAMETER che specificano attributi aggiuntivi per l'allocazione.
ExtendedParametersCount
Valore ULONG che specifica il numero di parametri in ExtendedParameters.
Valore restituito
exAllocatePool3 restituisce un puntatore alla memoria allocata.
Le condizioni seguenti fanno sì che la funzione restituisca NULL per impostazione predefinita. Se viene specificato POOL_FLAG_RAISE_ON_FAILURE, la funzione genera un'eccezione.
- Memoria insufficiente
- tag è impostato su 0 o sono specificate POOL_FLAGS non valide
- Strutture di POOL_EXTENDED_PARAMETER non valide
Osservazioni
Se si sta creando un driver destinato a versioni di Windows precedenti a Windows 10, versione 2004, usare ExAllocatePoolPriorityZero o ExAllocatePoolPriorityUninitialized.
Per altre informazioni, vedere le osservazioni di ExAllocatePool2.
Fabbisogno
| Requisito | Valore |
|---|---|
| client minimo supportato | Windows 10, versione 2004 |
| piattaforma di destinazione | Universale |
| intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
| libreria | NtosKrnl.lib |
| dll | NtosKrnl.exe |
| IRQL | <= DISPATCH_LEVEL (vedere la sezione Osservazioni) |
| regole di conformità DDI | HwStorPortProhibitedDDIs, SpNoWait, StorPortStartIo |