Compartilhar via


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