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 |