C30032
avertissement C30032 : Appel d’une fonction d’allocation de mémoire et forçage de la demande de mémoire exécutable via l’utilisation de la directive POOL_NX_OPTOUT
BANNED_MEM_ALLOCATION_FORCE_UNSAFE
La directive de préprocesseur POOL_NX_OPTOUT empêche la promotion automatique des types non sécurisés (MM_PAGE_PRIORITY et POOL_TYPE) vers des types fiables (par exemple, NonPagedPool vers NonPagedPoolNx). L’utilisation de POOL_NX_OPTOUT dans vos sources est probable par conception. Si cela est dû à la conception et que la mémoire exécutable est requise, vous pouvez supprimer l’avertissement avec Pragma Prefast pour supprimer les messages d’avertissement. Ce type d’allocation n’est pas autorisé sur Windows 10 systèmes qui ont opté pour des protections mémoire supplémentaires.
Exemple
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);