Condividi tramite


Funzione SetProcessDEPPolicy (winbase.h)

Modifica le impostazioni di prevenzione dell'esecuzione dei dati e DEP-ATL thunk per un processo a 32 bit.

Sintassi

BOOL SetProcessDEPPolicy(
  [in] DWORD dwFlags
);

Parametri

[in] dwFlags

DWORD che può essere uno o più dei valori seguenti.

Valore Significato
0
Se il criterio di sistema DEP è OptIn o OptOut e DEP è abilitato per il processo, l'impostazione di dwFlags su 0 disabilita DEP per il processo.
PROCESS_DEP_ENABLE
0x00000001
Abilita DEP in modo permanente nel processo corrente. Dopo aver abilitato DEP per il processo impostando PROCESS_DEP_ENABLE, non può essere disabilitato per la durata del processo.
PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION
0x00000002
Disabilita l'emulazione DEP-ATL thunk per il processo corrente, che impedisce al sistema di intercettare errori NX provenienti dal livello di thunk active template Library (ATL). Per altre informazioni, vedere la sezione Osservazioni. Questo flag può essere specificato solo con PROCESS_DEP_ENABLE.

Valore restituito

Se la funzione ha esito positivo, restituisce TRUE.

Se la funzione ha esito negativo, restituisce FALSE. Per recuperare i valori di errore definiti per questa funzione, chiamare GetLastError.

Commenti

La funzione SetProcessDEPPolicy esegue l'override dei criteri DEP di sistema per il processo corrente, a meno che i criteri DEP non siano stati specificati durante la creazione del processo. L'impostazione dei criteri DEP di sistema deve essere OptIn o OptOut. Se il criterio DEP di sistema è AlwaysOff o AlwaysOn, SetProcessDEPPolicy restituisce un errore. Dopo aver abilitato DEP per un processo, le chiamate successive a SetProcessDEPPolicy vengono ignorate.

I criteri DEP specificati durante la creazione del processo con l'attributo PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY non possono essere modificati per la durata del processo. In questo caso, le chiamate a SetProcessDEPPolicy hanno esito negativo con ERROR_ACCESS_DENIED.

SetProcessDEPPolicy è supportato solo per i processi a 32 bit. Se questa funzione viene chiamata in un processo a 64 bit, ha esito negativo con ERROR_NOT_SUPPORTED.

Le applicazioni scritte in ATL 7.1 e versioni precedenti possono tentare di eseguire codice nelle pagine contrassegnate come non eseguibili, che attiva un errore NX e termina l'applicazione. L'emulazione DEP-ATL thunk consente a un'applicazione che in caso contrario attiva un errore NX per l'esecuzione con DEP abilitato. Per informazioni sulle versioni ATL, vedere Numeri di versione ATL e MFC.

Se l'emulazione dep-ATL thunk è abilitata, il sistema intercetta gli errori NX, emula le istruzioni e gestisce le eccezioni in modo che l'applicazione possa continuare a essere eseguita. Se l'emulazione DEP-ATL thunk è disabilitata impostando PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION per il processo, gli errori NX non vengono intercettati, che è utile quando si testano le applicazioni per la compatibilità con DEP.

La tabella seguente riepiloga le interazioni tra criteri DEP di sistema, emulazione thunk DEP-ATL e SetProcessDEPPolicy. Per ottenere l'impostazione dei criteri DEP del sistema, usare la funzione GetSystemDEPPolicy .

Criteri DEP del sistema Comportamento DEP DEP_ATL comportamento di emulazione thunk Comportamento setProcessDEPPolicy
AlwaysOff

0

Disabilitato per il sistema operativo e tutti i processi. Non applicabile. Restituisce un errore.
AlwaysOn

1

Abilitato per il sistema operativo e tutti i processi. Disattivato. Restituisce un errore.
OptIn

2

Configurazione predefinita per le versioni client di Windows.

Abilitato per il sistema operativo e disabilitato per i processi non di sistema. Gli amministratori possono abilitare in modo esplicito DEP per i file eseguibili selezionati. Non applicabile. È possibile abilitare DEP per il processo corrente.

Se DEP è abilitato per il processo corrente, l'emulazione thunk DEP-ATL può essere disabilitata per tale processo.

OptOut

3

Configurazione predefinita per le versioni di Windows Server.

Abilitato per il sistema operativo e tutti i processi. Gli amministratori possono disabilitare in modo esplicito DEP per i file eseguibili selezionati. Abilitata. DEP può essere disabilitato per il processo corrente.

Se DEP è disabilitato per il processo corrente, l'emulazione thunk DEP-ATL viene disabilitata automaticamente per tale processo.

 

Per compilare un'applicazione che chiama questa funzione, definire _WIN32_WINNT come 0x0600 o versioni successive. Per altre informazioni, vedere Uso delle intestazioni di Windows.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista con SP1, Windows XP con SP3 [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winbase.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Protezione esecuzione programmi

GetProcessDEPPolicy

GetSystemDEPPolicy