Função ExAllocatePoolPriorityUninitialized (wdm.h)
Essa rotina é um wrapper e uma opção de substituição para ExAllocatePoolWithTagPriority.
ExAllocatePoolPriorityUninitialized aloca 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 gerada 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 ORing esse valor 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 paginada rapidamente. Para reduzir a quantidade de memória do pool residente o máximo possível, você não deve referenciar essas alocações com frequência. O sinalizador POOL_COLD_ALLOCATION é apenas 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.
Retornar valor
ExAllocatePoolPriorityUninitialized retornará NULL se não houver memória suficiente no pool livre 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.
Comentários
A memória alocada por ExAllocatePoolPriorityUninitialized não é inicializada. Um driver de modo kernel deve primeiro zero essa memória se ele vai torná-lo 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 de ExAllocatePoolWithTagPriority para obter diretrizes adicionais.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Requer o WDK para Windows 10, versão 2004. Tem como destino o Windows 7 e versões posteriores do sistema operacional Windows. |
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 da DDI | HwStorPortProhibitedDDIs, IrqlExAllocatePool, IrqlExFree2, SpNoWait, StorPortStartIo |