Freigeben über


Debuggen von Funktionen warten

[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]

Microsoft DirectShow bietet mehrere Funktionen zum Debuggen unendlicher Wartezeiten.

In Einzelhandelsbuilds funktionieren die DbgWaitForMultipleObjects und DbgWaitForSingleObject Funktionen wie ihre Windows-API-Entsprechungen, WaitForMultipleObjects und WaitForSingleObjectmit unendlichen Timeoutintervallen.

In Debugbuilds verwenden diese Funktionen einen globalen Timeoutwert. Wenn das Timeout abläuft, löst die Funktion eine Assertion aus. Der folgende Registrierungsschlüssel gibt den Timeoutwert in Millisekunden an:

HKEY_LOCAL_MACHINE\<DebugRoot->\<Modulname>\TIMEOUT-

dabei ist <DebugRoot-> der im Thema Debugausgabefunktionenbeschriebene Registrierungspfad.

Wenn der Schlüssel nicht vorhanden ist, wird der Timeoutwert standardmäßig auf INFINITE festgelegt. Sie können die DbgSetWaitTimeout--Funktion verwenden, um den Registrierungseintrag außer Kraft zu setzen.

Funktion Beschreibung
DbgSetWaitTimeout- Legt den Debugtimeoutwert fest.
DbgWaitForMultipleObjects Wartet auf eine (oder alle) der angegebenen Objekte, die signalisiert werden.
DbgWaitForSingleObject Wartet, bis ein Objekt signalisiert wird.