Partager via


C30032

avertissement C30032 : Appel d’une fonction d’allocation de mémoire et forcer la demande de mémoire exécutable à l’aide de la directive POOL_NX_OPTOUT

BANNED_MEM_ALLOCATION_FORCE_UNSAFE

La directive de préprocesseur POOL_NX_OPTOUT empêche la promotion automatique de types non sécurisés (MM_PAGE_PRIORITY et POOL_TYPE) aux types sécurisés (par exemple, NonPagedPool à NonPagedPoolNx). L’utilisation de POOL_NX_OPTOUT dans vos sources est probablement par conception. S’il s’agit de la conception et de la mémoire exécutable requise, vous pouvez supprimer l’avertissement avec Pragma Prefast to Suppress Warning Messages. Ce type d’allocation n’est pas autorisé sur les systèmes Windows 10 qui ont opté pour des protections de mémoire supplémentaires.

exemple de

Le code suivant génère cet avertissement :

Dans le fichier sources :

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

dans le fichier de code :

pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);

Le code suivant évite cet avertissement :

Dans le fichier sources, ajoutez :

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

dans le fichier de code :

pPtr = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority);