C30032
avviso C30032: Chiamata di una funzione di allocazione della memoria e forzare la richiesta di memoria eseguibile tramite l'uso della direttiva POOL_NX_OPTOUT
BANNED_MEM_ALLOCATION_FORCE_UNSAFE
La direttiva preprocessore POOL_NX_OPTOUT impedisce la promozione automatica 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 in base alla progettazione. Se questa è per progettazione e memoria 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 consenso esplicito su protezioni di memoria aggiuntive.
Esempio
Il codice seguente genera questo avviso:
Nel file di origini:
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 di origini aggiungere:
C_DEFINES=$(C_DEFINES) -DUNICODE -DPOOL_NX_OPTIN_AUTO=1
nel file di codice:
pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);