C30032

advertencia C30032: llamada a una función de asignación de memoria y forzar la solicitud de memoria ejecutable mediante el uso de la directiva POOL_NX_OPTOUT

BANNED_MEM_ALLOCATION_FORCE_UNSAFE

La directiva de preprocesador POOL_NX_OPTOUT impide la promoción automática de tipos no seguros (MM_PAGE_PRIORITY y POOL_TYPE) a tipos seguros (por ejemplo, NonPagedPool a NonPagedPoolNx). Es probable que el uso de POOL_NX_OPTOUT en los orígenes sea por diseño. Si esto es necesario por diseño y memoria ejecutable, puede suprimir la advertencia con Pragma Prefast para suprimir mensajes de advertencia. Este tipo de asignación no se permite en sistemas Windows 10 que hayan optado por proteger la memoria adicional.

Ejemplo

El código siguiente genera esta advertencia:

En el archivo de orígenes:

C_DEFINES=$(C_DEFINES) –DUNICODE -DPOOL_NX_OPTOUT=1

en el archivo de código:

pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);

El código siguiente evita esta advertencia:

En el archivo de orígenes, agregue:

C_DEFINES=$(C_DEFINES) -DUNICODE -DPOOL_NX_OPTIN_AUTO=1

en el archivo de código:

pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);