Função ExAllocatePool3 (wdm.h)

A rotina ExAllocatePool3 aloca a memória do pool do tipo especificado e retorna um ponteiro para o bloco alocado. Essa rotina é semelhante a ExAllocatePool2 , mas adiciona parâmetros estendidos.

Sintaxe

DECLSPEC_RESTRICT PVOID ExAllocatePool3(
  POOL_FLAGS                Flags,
  SIZE_T                    NumberOfBytes,
  ULONG                     Tag,
  PCPOOL_EXTENDED_PARAMETER ExtendedParameters,
  ULONG                     ExtendedParametersCount
);

Parâmetros

Flags

Um valor de tipo ULONG64 especificando o tipo de memória do pool juntamente com atributos obrigatórios e opcionais. Vários valores de sinalizador podem ser combinados usando OR bit a bit. Consulte POOL_FLAGS para obter valores possíveis.

NumberOfBytes

Especifica um número diferente de zero de bytes a serem alocados.

Tag

A marca de pool a ser usada para a memória alocada. Especifique a marca de pool como um literal de caractere diferente de zero de um a quatro caracteres delimitado por aspas simples (por exemplo, Tag1). A cadeia de caracteres geralmente é especificada em ordem inversa (por exemplo, 1gaT). Cada caractere ASCII na marca deve ser um valor no intervalo 0x20 (espaço) para 0x7E (til). Cada caminho de código de alocação deve usar uma marca de pool exclusiva para ajudar os depuradores e verificadores a identificar o caminho do código.

ExtendedParameters

Um ponteiro para uma matriz de estruturas de POOL_EXTENDED_PARAMETER que especificam atributos adicionais para a alocação.

ExtendedParametersCount

Um valor ULONG que especifica o número de parâmetros em ExtendedParameters.

Retornar valor

ExAllocatePool3 retorna um ponteiro para a memória alocada.

As condições a seguir fazem com que a função retorne NULL por padrão. Se POOL_FLAG_RAISE_ON_FAILURE for especificado, a função gerará uma exceção.

  • Memória insuficiente
  • A marca é definida como 0 ou POOL_FLAGS inválidas são especificadas
  • Estruturas de POOL_EXTENDED_PARAMETER inválidas

Comentários

Se você estiver criando um driver destinado a versões do Windows antes de Windows 10, versão 2004, use ExAllocatePoolPriorityZero ou ExAllocatePoolPriorityUninitialized.

Consulte as observações de ExAllocatePool2 para obter informações adicionais.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10, versão 2004
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (consulte a seção Comentários)
Regras de conformidade de DDI HwStorPortProhibitedDDIs, SpNoWait, StorPortStartIo

Confira também

ExAllocatePool2