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


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);