Compartilhar via


Método IDebugControl2::WaitForEvent (dbgeng.h)

O método WaitForEvent aguarda um evento que interrompa o aplicativo do mecanismo de depurador.

Sintaxe

HRESULT WaitForEvent(
  [in] ULONG Flags,
  [in] ULONG Timeout
);

Parâmetros

[in] Flags

Defina como zero. Atualmente, não há sinalizadores que possam ser usados nesse parâmetro.

[in] Timeout

Especifica quantos milissegundos aguardar antes que esse método retorne. Se Timeout for INFINITE, esse método não retornará até que ocorra um evento que interrompa o aplicativo do mecanismo de depurador ou uma interrupção de saída seja emitida. Se a sessão atual tiver um destino de kernel dinâmico, o Tempo limite deverá ser definido como INFINITE.

Retornar valor

Esse método pode retornar outros valores de erro e os valores de erro acima podem ter significados adicionais. Consulte Valores retornados para obter mais detalhes.

Código de retorno Descrição
S_OK
O método foi bem-sucedido.
S_FALSE
O tempo limite expirou.
E_PENDING
Uma interrupção de saída foi emitida. O destino não está disponível.
E_UNEXPECTED
Há uma solicitação pendente de entrada ou nenhum dos destinos pode gerar eventos.
E_FAIL
O mecanismo já está aguardando um evento.

Comentários

O método só pode ser chamado do thread que iniciou a sessão do depurador.

Quando ocorrer um evento, o mecanismo de depurador processará o evento e chamará os retornos de chamada do evento. Se um desses retornos de chamada indicar que o evento deve invadir o aplicativo do mecanismo de depurador (retornando DEBUG_STATUS_BREAK), esse método retornará; caso contrário, ele continuará aguardando um evento. Os filtros de evento também podem especificar que um evento deve invadir o aplicativo do mecanismo de depurador. Para obter mais informações sobre filtros de eventos, consulte Controlando exceções e eventos.

Este método não é de reinserção. Depois de ser chamado, ele não poderá ser chamado novamente em nenhum cliente até que ele tenha retornado. Em particular, ele não pode ser chamado dos retornos de chamada de evento, incluindo extensões e comandos executados pelos retornos de chamada.

Se nenhum dos destinos for capaz de gerar eventos, por exemplo, todos os destinos tiverem sido encerrados, esse método encerrará a sessão atual, descartará os destinos e retornará E_UNEXPECTED.

A constante INFINITE é definida em Winbase.h.

Para obter mais informações sobre como usar WaitForEvent para controlar o fluxo de execução do aplicativo de depurador e destinos, consulte Depurando o Modelo de Sessão e Execução. Para obter detalhes sobre os retornos de chamada de evento, consulte Eventos de monitoramento.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho dbgeng.h (inclua Dbgeng.h, Winbase.h)

Confira também

Idebugcontrol

IDebugControl2

IDebugControl3