Partilhar via


Função ExAllocatePoolPriorityUninitialized (wdm.h)

Essa rotina é uma opção de wrapper e substituição para ExAllocatePoolWithTagPriority.

ExAllocatePoolPriorityUninitialized aloca a memória do pool do tipo especificado.

Sintaxe

PVOID ExAllocatePoolPriorityUninitialized(
  __drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
  SIZE_T                                         NumberOfBytes,
  ULONG                                          Tag,
  EX_POOL_PRIORITY                               Priority
);

Parâmetros

PoolType

O tipo de memória do pool a ser alocada. Para obter uma descrição dos tipos de memória do pool disponíveis, consulte POOL_TYPE.

Você pode modificar o valor de enumeração executando um OR bit a bit com o sinalizador POOL_RAISE_IF_ALLOCATION_FAILURE definido em wdm.h. Esse sinalizador fará com que uma exceção seja acionada se a solicitação não puder ser atendida. O uso desse sinalizador não é recomendado porque ele é caro.

Da mesma forma, você pode modificar o valor PoolType bit a bit com o sinalizador POOL_COLD_ALLOCATION (também definido em wdm.h) como uma dica para o kernel para alocar a memória de páginas que provavelmente serão excluídas rapidamente. Para reduzir a quantidade de memória do pool de residentes o máximo possível, você não deve referenciar essas alocações com frequência. O sinalizador POOL_COLD_ALLOCATION é apenas um aviso.

NumberOfBytes

O número de bytes a serem alocados.

Tag

A marca de pool a ser usada para a memória alocada. Para obter mais informações, consulte o parâmetro Tag de ExAllocatePoolWithTag.

Priority

Um valor de enumeração EX_POOL_PRIORITY especificando a prioridade dessa solicitação.

Valor de retorno

ExAllocatePoolPriorityUninitialized retornará NULL se não houver memória suficiente no pool gratuito para atender à solicitação, a menos que POOL_RAISE_IF_ALLOCATION_FAILURE seja especificado. Caso contrário, a rotina retornará um ponteiro para a memória alocada.

Observações

A memória que alocações de ExAllocatePoolPriorityUninitialized não é inicializada. Um driver de modo kernel deve primeiro zero essa memória se ele for torná-la visível para o software no modo de usuário (para evitar o vazamento de conteúdo potencialmente privilegiado)

Consulte a seção Comentários do ExAllocatePoolWithTagPriority para obter diretrizes adicionais.

Requisitos

Requisito Valor
de cliente com suporte mínimo Requer wdk para Windows 10, versão 2004. Direciona o Windows 7 e versões posteriores do sistema operacional Windows.
da Plataforma de Destino Universal
cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca NtosKrnl.lib
de DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (consulte a seção Comentários)
regras de conformidade de DDI HwStorPortProhibitedDIs, IrqlExAllocatePool, IrqlExFree2, SpNoWait, StorPortStartIo

Consulte também

ExAllocatePoolWithTagPriority

ExAllocatePoolPriorityZero