Fonction SetProcessDEPPolicy (winbase.h)

Modifie les paramètres de prévention de l’exécution des données (DEP) et d’émulation de thunk DEP-ATL pour un processus 32 bits.

Syntaxe

BOOL SetProcessDEPPolicy(
  [in] DWORD dwFlags
);

Paramètres

[in] dwFlags

DWORD qui peut être une ou plusieurs des valeurs suivantes.

Valeur Signification
0
Si la stratégie système DEP est OptIn ou OptOut et que DEP est activé pour le processus, la définition de dwFlags sur 0 désactive DEP pour le processus.
PROCESS_DEP_ENABLE
0x00000001
Active DEP de manière permanente sur le processus actuel. Une fois que DEP a été activé pour le processus en définissant PROCESS_DEP_ENABLE, il ne peut pas être désactivé pendant toute la durée du processus.
PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION
0x00000002
Désactive l’émulation de thunk DEP-ATL pour le processus en cours, ce qui empêche le système d’intercepter les erreurs NX qui proviennent de la couche thunk de la bibliothèque de modèles actifs (ATL). Pour plus d'informations, consultez la section Notes. Cet indicateur ne peut être spécifié qu’avec PROCESS_DEP_ENABLE.

Valeur retournée

Si la fonction réussit, elle retourne TRUE.

Si la fonction échoue, elle retourne FALSE. Pour récupérer les valeurs d’erreur définies pour cette fonction, appelez GetLastError.

Remarques

La fonction SetProcessDEPPolicy remplace la stratégie DEP système pour le processus actuel, sauf si sa stratégie DEP a été spécifiée lors de la création du processus. Le paramètre de stratégie DEP système doit être OptIn ou OptOut. Si la stratégie DEP système est AlwaysOff ou AlwaysOn, SetProcessDEPPolicy retourne une erreur. Une fois que LAP est activée pour un processus, les appels suivants à SetProcessDEPPolicy sont ignorés.

La stratégie DEP spécifiée lors de la création du processus avec l’attribut PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY ne peut pas être modifiée pendant toute la durée du processus. Dans ce cas, les appels à SetProcessDEPPolicy échouent avec ERROR_ACCESS_DENIED.

SetProcessDEPPolicy est pris en charge uniquement pour les processus 32 bits. Si cette fonction est appelée sur un processus 64 bits, elle échoue avec ERROR_NOT_SUPPORTED.

Les applications écrites dans ATL 7.1 et versions antérieures peuvent tenter d’exécuter du code sur des pages marquées comme non exécutables, ce qui déclenche une erreur NX et met fin à l’application. L’émulation de thunk DEP-ATL permet à une application qui déclencherait une erreur NX de s’exécuter avec DEP activé. Pour plus d’informations sur les versions ATL, consultez Numéros de version ATL et MFC.

Si l’émulation de thunk DEP-ATL est activée, le système intercepte les erreurs NX, émule les instructions et gère les exceptions afin que l’application puisse continuer à s’exécuter. Si l’émulation de thunk DEP-ATL est désactivée en définissant PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION pour le processus, les erreurs NX ne sont pas interceptées, ce qui est utile lors du test de compatibilité des applications avec DEP.

Le tableau suivant récapitule les interactions entre la stratégie DEP système, l’émulation de thunk DEP-ATL et SetProcessDEPPolicy. Pour obtenir le paramètre de stratégie DEP système, utilisez la fonction GetSystemDEPPolicy .

Stratégie DEP système Comportement DEP DEP_ATL comportement d’émulation thunk Comportement de SetProcessDEPPolicy
AlwaysOff

0

Désactivé pour le système d’exploitation et tous les processus. Non applicable. Retourne une erreur.
AlwaysOn

1

Activé pour le système d’exploitation et tous les processus. Désactivé. Retourne une erreur.
OptIn

2

Configuration par défaut pour les versions du client Windows.

Activé pour le système d’exploitation et désactivé pour les processus non système. Les administrateurs peuvent activer explicitement DEP pour les fichiers exécutables sélectionnés. Non applicable. LAP peut être activée pour le processus en cours.

Si LAP est activée pour le processus actuel, l’émulation de thunk DEP-ATL peut être désactivée pour ce processus.

OptOut

3

Configuration par défaut pour les versions de Windows Server.

Activé pour le système d’exploitation et tous les processus. Les administrateurs peuvent désactiver explicitement LAP pour les fichiers exécutables sélectionnés. Activé. La dep peut être désactivée pour le processus en cours.

Si DEP est désactivé pour le processus en cours, l’émulation de thunk DEP-ATL est automatiquement désactivée pour ce processus.

 

Pour compiler une application qui appelle cette fonction, définissez _WIN32_WINNT comme 0x0600 ou version ultérieure. Pour plus d’informations, consultez Utilisation des en-têtes Windows.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista avec SP1, Windows XP avec SP3 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Prévention de l’exécution des données

GetProcessDEPPolicy

GetSystemDEPPolicy