Partilhar via


C30034

aviso C30034: Passando um valor de sinalizador para uma função de alocação que pode resultar na alocação de memória executável. Verifique se a função de alocação não está solicitando uma forma de pool executável não paginado.

BANNED_MEM_ALLOCATION_MAYBE_UNSAFE

Foi encontrada uma chamada para uma função que resulta na possível alocação de pool executável não paginado. Existem parâmetros usados que indicam que a alocação resultante pode realmente não ser executável, mas é determinado que isso é improvável e a memória executável foi alocada. Isso é mais comum com uma função que usa funções de alocação opcionais como parâmetro.

Exemplo

O código a seguir gera esse aviso porque não se sabe se pAllocate aloca o tipo especificado - neste o quarto parâmetro (0, que é executável) ou se o tipo de alocação é definido de dentro pAllocate.

ExInitializeNPagedLookasideList(   pLookaside,
                pAllocate,
                pFree,
                0,
                size,
                tag,
                depth);

O código a seguir evita esse aviso:

ExInitializeNPagedLookasideList(   pLookaside,
                pAllocate,
                pFree,
                POOL_NX_ALLOCATION,
                size,
                tag,
                depth);