Compartilhar via


Função SetProcessDEPPolicy (winbase.h)

Altera as configurações de emulação de conversão de DEP e DEP-ATL para um processo de 32 bits.

Sintaxe

BOOL SetProcessDEPPolicy(
  [in] DWORD dwFlags
);

Parâmetros

[in] dwFlags

Um DWORD que pode ser um ou mais dos valores a seguir.

Valor Significado
0
Se a política do sistema DEP for OptIn ou OptOut e DEP estiver habilitada para o processo, definir dwFlags como 0 desabilita o DEP para o processo.
PROCESS_DEP_ENABLE
0x00000001
Habilita o DEP permanentemente no processo atual. Depois que o DEP tiver sido habilitado para o processo definindo PROCESS_DEP_ENABLE, ele não poderá ser desabilitado durante a vida útil do processo.
PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION
0x00000002
Desabilita a emulação de conversão DEP-ATL para o processo atual, o que impede que o sistema intercepte falhas NX originadas da camada de conversão da ATL (Biblioteca de Modelos Ativos). Para obter mais informações, consulte a seção Comentários. Esse sinalizador só pode ser especificado com PROCESS_DEP_ENABLE.

Retornar valor

Se a função for bem-sucedida, ela retornará TRUE.

Se a função falhar, ela retornará FALSE. Para recuperar valores de erro definidos para essa função, chame GetLastError.

Comentários

A função SetProcessDEPPolicy substitui a política de DEP do sistema para o processo atual, a menos que sua política DEP tenha sido especificada na criação do processo. A configuração de política de DEP do sistema deve ser OptIn ou OptOut. Se a política de DEP do sistema for AlwaysOff ou AlwaysOn, SetProcessDEPPolicy retornará um erro. Depois que o DEP é habilitado para um processo, as chamadas subsequentes para SetProcessDEPPolicy são ignoradas.

A política DEP especificada na criação do processo com o atributo PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY não pode ser alterada durante a vida útil do processo. Nesse caso, as chamadas para SetProcessDEPPolicy falham com ERROR_ACCESS_DENIED.

SetProcessDEPPolicy tem suporte apenas para processos de 32 bits. Se essa função for chamada em um processo de 64 bits, ela falhará com ERROR_NOT_SUPPORTED.

Aplicativos gravados na ATL 7.1 e anteriores podem tentar executar código em páginas marcadas como não executáveis, o que dispara uma falha de NX e encerra o aplicativo. A emulação thunk de DEP-ATL permite que um aplicativo que, de outra forma, dispararia uma falha do NX para ser executado com o DEP habilitado. Para obter informações sobre as versões da ATL, consulte Números de versão da ATL e do MFC.

Se a emulação thunk de DEP-ATL estiver habilitada, o sistema intercepta falhas NX, emula as instruções e manipula as exceções para que o aplicativo possa continuar a ser executado. Se a emulação thunk de DEP-ATL estiver desabilitada definindo PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION para o processo, as falhas do NX não serão interceptadas, o que é útil ao testar aplicativos para compatibilidade com o DEP.

A tabela a seguir resume as interações entre a política de DEP do sistema, a emulação thunk de DEP-ATL e SetProcessDEPPolicy. Para obter a configuração de política de DEP do sistema, use a função GetSystemDEPPolicy .

Política de DEP do sistema Comportamento de DEP DEP_ATL comportamento de emulação thunk Comportamento de SetProcessDEPPolicy
AlwaysOff

0

Desabilitado para o sistema operacional e todos os processos. Não aplicável. Retorna um erro.
AlwaysOn

1

Habilitado para o sistema operacional e todos os processos. Desabilitado. Retorna um erro.
OptIn

2

Configuração padrão para versões de cliente do Windows.

Habilitado para o sistema operacional e desabilitado para processos não sistema. Os administradores podem habilitar explicitamente o DEP para arquivos executáveis selecionados. Não aplicável. O DEP pode ser habilitado para o processo atual.

Se o DEP estiver habilitado para o processo atual, a emulação thunk de DEP-ATL poderá ser desabilitada para esse processo.

OptOut

3

Configuração padrão para versões do Windows Server.

Habilitado para o sistema operacional e todos os processos. Os administradores podem desabilitar explicitamente o DEP para arquivos executáveis selecionados. Habilitada. O DEP pode ser desabilitado para o processo atual.

Se o DEP estiver desabilitado para o processo atual, a emulação thunk de DEP-ATL será desabilitada automaticamente para esse processo.

 

Para compilar um aplicativo que chama essa função, defina _WIN32_WINNT como 0x0600 ou posterior. Para obter mais informações, consulte Usando os cabeçalhos do Windows.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista com SP1, Windows XP com SP3 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winbase.h (incluir Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

Prevenção de Execução de Dados

GetProcessDEPPolicy

GetSystemDEPPolicy