Funzione ExAllocatePool3 (wdm.h)

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

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
  • Il tag è impostato su 0 o POOL_FLAGS non valido sono specificati
  • Strutture di POOL_EXTENDED_PARAMETER non valide

Commenti

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 .

Requisiti

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

Vedi anche

ExAllocatePool2