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