Compartir a través de


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

El método WaitForEvent espera un evento que se divide en la aplicación del motor del depurador.

Sintaxis

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

Parámetros

[in] Flags

Establézcalo en cero. Actualmente no hay marcas que se pueden usar en este parámetro.

[in] Timeout

Especifica cuántos milisegundos se deben esperar antes de que se devuelva este método. Si timeout es INFINITE, este método no devolverá hasta que se produzca un evento que se interrumpa en la aplicación del motor del depurador o se emita una interrupción de salida. Si la sesión actual tiene un destino de kernel activo, tiempo de espera debe establecerse en INFINITE.

Valor devuelto

Este método puede devolver otros valores de error y los valores de error anteriores pueden tener significados adicionales. Consulte valores devueltos para obtener más información.

Código devuelto Descripción
S_OK
El método se realizó correctamente.
S_FALSE
El tiempo de espera ha expirado.
E_PENDING
Se emitió una interrupción de salida. El destino no está disponible.
E_UNEXPECTED
Hay una solicitud pendiente para la entrada o ninguno de los destinos podría generar eventos.
E_FAIL
El motor ya está esperando un evento.

Observaciones

Solo se puede llamar al método desde el subproceso que inició la sesión del depurador.

Cuando se produce un evento, el motor del depurador de procesará el evento y llamará a las devoluciones de llamada del evento. Si una de estas devoluciones de llamada indica que el evento debe dividirse en la aplicación del motor del depurador (devolviendo DEBUG_STATUS_BREAK), este método devolverá; de lo contrario, seguirá esperando un evento. Los filtros de eventos también pueden especificar que un evento debe dividirse en la aplicación del motor del depurador. Para obtener más información sobre los filtros de eventos, vea Control de excepciones y eventos.

Este método no es re-entrant. Una vez que se ha llamado, no se puede llamar de nuevo en ningún cliente hasta que se haya devuelto. En concreto, no se puede llamar desde las devoluciones de llamada de eventos, incluidas las extensiones y los comandos ejecutados por las devoluciones de llamada.

Si ninguno de los destinos es capaz de generar eventos (por ejemplo, todos los destinos han salido), este método finalizará la sesión actual, descartará los destinos y, a continuación, devolverá E_UNEXPECTED.

La constante INFINITE se define en Winbase.h.

Para obtener más información sobre el uso de WaitForEvent para controlar el flujo de ejecución de la aplicación y los destinos del depurador, vea Depuración de sesión y modelo de ejecución. Para obtener más información sobre las devoluciones de llamada de eventos, consulte Supervisión de eventos.

Requisitos

Requisito Valor
de la plataforma de destino de Escritorio
encabezado de dbgeng.h (incluya Dbgeng.h, Winbase.h)

Consulte también

IDebugControl

IDebugControl2

IDebugControl3