Função ExAllocatePoolQuotaUninitialized (wdm.h)
A rotina ExAllocatePoolQuotaUninitialized aloca memória do pool, cobrando a cota em relação ao processo atual.
Essa rotina é uma opção de wrapper e substituição para ExAllocatePoolWithQuotaTag. Não há diferença na funcionalidade.
Sintaxe
PVOID ExAllocatePoolQuotaUninitialized(
__drv_strictTypeMatch(__drv_typeExpr)POOL_TYPE PoolType,
SIZE_T NumberOfBytes,
ULONG Tag
);
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.
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. 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 (bloco). 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.
Valor de retorno
ExAllocatePoolQuotaUninitialized retorna um ponteiro para o pool alocado.
Se a solicitação não puder ser atendida, ExAllocatePoolQuotaUninitialized gerará uma exceção, a menos que POOL_QUOTA_FAIL_INSTEAD_OF_RAISE seja especificado. Usar POOL_QUOTA_FAIL_INSTEAD_OF_RAISE é preferencial por motivos de desempenho.
Observações
Essa rotina é chamada por drivers de nível mais alto que alocam memória para atender a uma solicitação no contexto do processo que originalmente fez a solicitação de E/S. Drivers de nível inferior chamam ExAllocatePoolUninitialized.
A memória que alocações ExAllocatePoolQuotaUninitialized 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 de ExAllocatePoolWithQuotaTag 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 | IRQL <= DISPATCH_LEVEL (consulte a seção Comentários) |
regras de conformidade de DDI | HwStorPortProhibitedDIs, SpNoWait, StorPortStartIo |