Поделиться через


C30034

предупреждение C30034: передача значения флага в функцию выделения, которая может привести к выделению исполняемой памяти. Убедитесь, что функция выделения не запрашивает форму исполняемого пула, отличного от буфера.

BANNED_MEM_ALLOCATION_MAYBE_UNSAFE

Обнаружен вызов функции, которая приводит к возможному выделению исполняемого пула, непагрегированного пула. Существуют параметры, указывающие, что результирующее выделение может быть неисполнимым, но определяется, что это маловероятно, и выделена исполняемая память. Это наиболее распространено с функцией, которая принимает необязательные функции выделения в качестве параметра.

Пример

Следующий код создает это предупреждение, так как он не известен, если pAllocate выделяет указанный тип - в этом четвертом параметре (0, который является исполняемым) или если тип выделения задан из pAllocate.

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

Следующий код избегает этого предупреждения:

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