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