Поделиться через


Метод IDebugControl3::WaitForEvent (dbgeng.h)

Метод WaitForEvent ожидает события, которое врезается в приложение обработчика отладчика.

Синтаксис

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

Параметры

[in] Flags

Задайте нулевое значение. В настоящее время флаги, которые можно использовать в этом параметре, отсутствуют.

[in] Timeout

Указывает, сколько миллисекундах следует ожидать, прежде чем этот метод вернет. Если значение Timeout равно INFINITE, этот метод не возвращается до тех пор, пока не произойдет событие, прерывающее работу приложения обработчика отладчика, или если не будет выдано прерывание выхода. Если текущий сеанс имеет динамический целевой объект ядра, для параметра Timeout должно быть задано значение INFINITE.

Возвращаемое значение

Этот метод может возвращать другие значения ошибок, а указанные выше значения могут иметь дополнительные значения. Дополнительные сведения см. в разделе Возвращаемые значения .

Код возврата Описание
S_OK
Метод выполнен успешно.
S_FALSE
Истекло время ожидания.
E_PENDING
Было выдано прерывание выхода. Целевой объект недоступен.
E_UNEXPECTED
Либо есть невыполненные запросы на входные данные, либо ни один из целевых объектов не может создавать события.
E_FAIL
Подсистема уже ожидает события.

Комментарии

Метод можно вызывать только из потока, запустив сеанс отладчика.

При возникновении события подсистема отладчика обработает событие и вызовет обратные вызовы события. Если один из этих обратных вызовов указывает, что событие должно прерваться в приложение обработчика отладчика (возвращая DEBUG_STATUS_BREAK), этот метод возвращает ; В противном случае будет продолжаться ожидание события. Фильтры событий также могут указывать, что событие должно прерваться в приложение обработчика отладчика. Дополнительные сведения о фильтрах событий см. в разделе Управление исключениями и событиями.

Этот метод не является реентерабельным. После вызова он не может быть вызван на любом клиенте до тех пор, пока не будет возвращен. В частности, он не может вызываться из обратных вызовов событий, включая расширения и команды, выполняемые обратными вызовами.

Если ни один из целевых объектов не способен создавать события ( например, все целевые объекты завершили работу), этот метод завершит текущий сеанс, отменит целевые объекты, а затем вернет E_UNEXPECTED.

Константа INFINITE определена в Winbase.h.

Дополнительные сведения об использовании WaitForEvent для управления потоком выполнения приложения и целевых объектов отладчика см. в разделе Отладка модели сеансов и выполнения. Дополнительные сведения о обратных вызовах событий см. в разделе Мониторинг событий.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть dbgeng.h (включая Dbgeng.h, Winbase.h)

См. также раздел

IDebugControl

IDebugControl2

IDebugControl3