Метод IDebugControl2::WaitForEvent (dbgeng.h)
Метод WaitForEvent ожидает события, которое врывается в приложение обработчика отладчика.
Синтаксис
HRESULT WaitForEvent(
[in] ULONG Flags,
[in] ULONG Timeout
);
Параметры
[in] Flags
Задайте нулевое значение. В настоящее время флаги, которые можно использовать в этом параметре, отсутствуют.
[in] Timeout
Указывает, сколько миллисекундах следует ожидать, прежде чем этот метод вернет. Если параметр Timeout имеет значение INFINITE, этот метод не возвращается до тех пор, пока не произойдет событие, которое врезается в приложение обработчика отладчика, или пока не будет выдано прерывание выхода. Если текущий сеанс имеет целевой объект ядра в режиме реального времени, для параметра Timeout должно быть установлено значение INFINITE.
Возвращаемое значение
Этот метод может возвращать другие значения ошибок, а указанные выше значения могут иметь дополнительные значения. Дополнительные сведения см. в разделе Возвращаемые значения .
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Истекло время ожидания. |
|
Было выдано прерывание выхода. Целевой объект недоступен. |
|
Либо есть невыполненные запросы на входные данные, либо ни один из целевых объектов не может создать события. |
|
Подсистема уже ожидает события. |
Комментарии
Метод можно вызвать только из потока, запустив сеанс отладчика.
При возникновении события обработчик отладчика обработает событие и вызовет обратные вызовы события. Если один из этих обратных вызовов указывает, что событие должно прерваться в приложение обработчика отладчика (возвращая DEBUG_STATUS_BREAK), этот метод возвращает ; В противном случае он будет продолжать ожидать события. Фильтры событий также могут указывать, что событие должно прерваться в приложение обработчика отладчика. Дополнительные сведения о фильтрах событий см. в разделе Управление исключениями и событиями.
Этот метод не является реентерабельным. После вызова он не может быть вызван ни на одном клиенте до тех пор, пока он не будет возвращен. В частности, он не может вызываться из обратных вызовов событий, включая расширения и команды, выполняемые обратными вызовами.
Если ни один из целевых объектов не способен генерировать события ( например, все целевые объекты завершили работу), этот метод завершит текущий сеанс, отменит целевые объекты и возвратит E_UNEXPECTED.
Константная INFINITE определена в Winbase.h.
Дополнительные сведения об использовании WaitForEvent для управления потоком выполнения приложения и целевых объектов отладчика см. в разделе Отладка сеанса и модели выполнения. Дополнительные сведения о обратных вызовах событий см. в разделе Мониторинг событий.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | dbgeng.h (включая Dbgeng.h, Winbase.h) |