Метод IDebugControl2::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