Função SetProcessDynamicEHContinuationTargets (processthreadsapi.h)
Define destinos de continuação de tratamento de exceção dinâmica para o processo especificado.
Sintaxe
BOOL SetProcessDynamicEHContinuationTargets(
HANDLE Process,
USHORT NumberOfTargets,
PPROCESS_DYNAMIC_EH_CONTINUATION_TARGET Targets
);
Parâmetros
Process
Um identificador para o processo. Esse identificador deve ter o acesso PROCESS_SET_INFORMATION correto. Para obter mais informações, consulte Direitos de Acesso e Segurança do Processo.
NumberOfTargets
Fornece o número de destinos de continuação de tratamento de exceção dinâmica a serem definidos.
Targets
Um ponteiro para uma matriz de destinos de continuação de tratamento de exceção dinâmica. Para obter mais informações sobre essa estrutura, consulte PROCESS_DYNAMIC_EH_CONTINUATION_TARGET.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError. Observe que, mesmo que a função falhe, uma parte dos destinos de continuação fornecidos pode ter sido processada com êxito. O chamador precisa marcar os sinalizadores em cada destino de continuação individual especificado por meio de Destinos para determinar se ele foi processado com êxito.
Comentários
Se a Proteção contra Pilha imposta por hardware no modo de usuário estiver habilitada para um processo, ao chamar APIs que modificam o contexto de execução de um thread como RtlRestoreContext e SetThreadContext, a validação será executada no Ponteiro de Instrução especificado no novo contexto de execução.
RtlRestoreContext é usado durante o desenrolamento da exceção SEH ( Tratamento de Exceção Estruturada ) para desenrolar para o quadro de destino que contém o __except
bloco e para começar a executar o código no destino de continuação.
Portanto, o sistema operacional precisa saber os endereços de instrução de todos os destinos de continuação válidos para permitir a operação de desenrolamento por meio de RtlRestoreContext.
Para binários compilados, a lista de destinos de continuação é gerada pelo vinculador e armazenada na imagem binária.
Para código dinâmico, os destinos de continuação precisam ser especificados usando SetProcessDynamicEHContinuationTargets.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10 Build 20348 |
Servidor mínimo com suporte | Windows 10 Build 20348 |
Cabeçalho | processthreadsapi.h |