Compartilhar via


Método IDebugControl::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

Definido como zero. No momento, não há sinalizadores que possam ser usados nesse parâmetro.

[in] Timeout

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

Valor de retorno

Esse método pode retornar outros valores de erro e os valores de erro acima podem ter significados adicionais. Consulte de 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.

Observações

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

Quando um evento ocorre, 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 evento, consulte Controlando exceções e eventos.

Esse método não é um novo participante. Depois de chamado, ele não pode 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 foram 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 depurador e destinos, consulte Depurandode Modelo de Sessão e Execução. Para obter detalhes sobre os retornos de chamada de evento, consulte Eventos de Monitoramento.

Requisitos

Requisito Valor
da Plataforma de Destino Área de trabalho
cabeçalho dbgeng.h (inclua Dbgeng.h, Winbase.h)

Consulte também

IDebugControl

IDebugControl2

IDebugControl3