Condividi tramite


C30032

avviso C30032: Chiamata di una funzione di allocazione della memoria e forzatura della richiesta di memoria eseguibile tramite l'uso della direttiva POOL_NX_OPTOUT

BANNED_MEM_ALLOCATION_FORCE_UNSAFE

La direttiva del preprocessore POOL_NX_OPTOUT impedisce l'innalzamento automatico di tipi non sicuri (MM_PAGE_PRIORITY e POOL_TYPE) a tipi sicuri , ad esempio NonPagedPool a NonPagedPoolNx. È probabile che l'uso di POOL_NX_OPTOUT nelle origini sia progettato. Se si tratta di una memoria predefinita e eseguibile è necessaria, è possibile eliminare l'avviso con Pragma Prefast per eliminare i messaggi di avviso. Questo tipo di allocazione non è consentito nei sistemi Windows 10 che hanno acconsentito esplicitamente a protezioni di memoria aggiuntive.

Esempio di

Il codice seguente genera questo avviso:

Nel file sources:

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

nel file di codice:

pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);

Il codice seguente evita questo avviso:

Nel file sources aggiungere:

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

nel file di codice:

pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);