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