Freigeben über


IDebugControl3::WaitForEvent-Methode (dbgeng.h)

Die WaitForEvent-Methode wartet auf ein Ereignis, das in die Debugger-Engine-Anwendung einbricht.

Syntax

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

Parameter

[in] Flags

Auf NULL festlegen. Es gibt derzeit keine Flags, die in diesem Parameter verwendet werden können.

[in] Timeout

Gibt an, wie viele Millisekunden gewartet werden müssen, bis diese Methode zurückgegeben wird. Wenn Timeout UNENDLICH ist, wird diese Methode erst zurückgegeben, wenn ein Ereignis auftritt, das in die Debugger-Engine-Anwendung einbricht oder ein Exit-Interrupt ausgegeben wird. Wenn die aktuelle Sitzung über ein Live-Kernelziel verfügt, muss timeout auf INFINITE festgelegt werden.

Rückgabewert

Diese Methode gibt möglicherweise andere Fehlerwerte zurück, und die oben genannten Fehlerwerte haben möglicherweise zusätzliche Bedeutungen. Weitere Informationen finden Sie unter Rückgabewerte .

Rückgabecode BESCHREIBUNG
S_OK
Die Methode war erfolgreich.
S_FALSE
Das Timeout ist abgelaufen.
E_PENDING
Ein Exit-Interrupt wurde ausgegeben. Das Ziel ist nicht verfügbar.
E_UNEXPECTED
Entweder gibt es eine ausstehende Eingabeanforderung, oder keines der Ziele kann Ereignisse generieren.
E_FAIL
Die Engine wartet bereits auf ein Ereignis.

Hinweise

Die -Methode kann nur über den Thread aufgerufen werden, der die Debuggersitzung gestartet hat.

Wenn ein Ereignis auftritt, verarbeitet die Debugger-Engine das Ereignis und ruft die Ereignisrückrufe auf. Wenn einer dieser Rückrufe angibt, dass das Ereignis in die Debugger-Engine-Anwendung unterteilt werden soll (indem DEBUG_STATUS_BREAK zurückgegeben wird), wird diese Methode zurückgegeben. Andernfalls wird weiterhin auf ein Ereignis gewartet. Die Ereignisfilter können auch angeben, dass ein Ereignis in die Debugger-Engine-Anwendung eingebrochen werden soll. Weitere Informationen zu Ereignisfiltern finden Sie unter Steuern von Ausnahmen und Ereignissen.

Diese Methode ist nicht wiedereintrittsfähig. Nach dem Aufruf kann es auf keinem Client mehr aufgerufen werden, bis er zurückgegeben wurde. Insbesondere kann er nicht über die Ereignisrückrufe aufgerufen werden, einschließlich Erweiterungen und Befehle, die von den Rückrufen ausgeführt werden.

Wenn keines der Ziele in der Lage ist, Ereignisse zu generieren – z. B. alle Ziele wurden beendet –, beendet diese Methode die aktuelle Sitzung, verwirft die Ziele und gibt dann E_UNEXPECTED zurück.

Die Konstante INFINITE ist in Winbase.h definiert.

Weitere Informationen zur Verwendung von WaitForEvent zum Steuern des Ausführungsablaufs der Debuggeranwendung und -ziele finden Sie unter Debuggen von Sitzung und Ausführungsmodell. Ausführliche Informationen zu den Ereignisrückrufen finden Sie unter Überwachen von Ereignissen.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile dbgeng.h (einschließlich Dbgeng.h, Winbase.h)

Weitere Informationen

IDebugControl

IDebugControl2

IDebugControl3