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 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 |