Compartir a través de


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

Establecer en cero. Actualmente no hay marcas que se puedan usar en este parámetro.

[in] Timeout

Especifica cuántos milisegundos se deben esperar antes de que este método devuelva. 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, timeout 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 detalles.

Código devuelto Descripción
S_OK
Método realizado correctamente.
S_FALSE
El tiempo de espera expiró.
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.

Comentarios

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 procesará el evento y llamará a las devoluciones de llamada del evento. Si una de estas devoluciones de llamada indica que el evento debe interrumpirse 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 Controlar excepciones y eventos.

Este método no puede introducirse en varias ocasiones. 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 más información sobre las devoluciones de llamada de eventos, consulte Supervisión de eventos.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado dbgeng.h (incluya Dbgeng.h, Winbase.h)

Consulte también

IDebugControl

IDebugControl2

IDebugControl3