Sdílet prostřednictvím


C30032

upozornění C30032: Volání funkce přidělování paměti a vynucení požadavku spustitelné paměti pomocí direktivy POOL_NX_OPTOUT

BANNED_MEM_ALLOCATION_FORCE_UNSAFE

Direktiva preprocesoru POOL_NX_OPTOUT zabraňuje automatickému povýšení nebezpečných typů (MM_PAGE_PRIORITY a POOL_TYPE) na bezpečné typy (například NonPagedPool na NonPagedPoolNx). Použití POOL_NX_OPTOUT ve vašich zdrojích je pravděpodobně záměrně. Pokud je to návrh a spustitelná paměť je vyžadována, můžete potlačit upozornění pomocí Pragma Prefast potlačovat zprávy upozornění. Tento typ přidělení není povolen v systémech Windows 10, které se přihlásily k dalším ochraně paměti.

příklad

Následující kód vygeneruje toto upozornění:

V souboru zdrojů:

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

v souboru kódu:

pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);

Následující kód se vyhne tomuto upozornění:

Do souboru zdrojů přidejte:

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

v souboru kódu:

pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);