대기 디버깅 함수
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
Microsoft DirectShow는 무한 대기를 디버깅하기 위한 몇 가지 기능을 제공합니다.
소매 빌드에서 DbgWaitForMultipleObjects 및 DbgWaitForSingleObject 함수는 무한 시간 제한 간격으로 Windows API 대응인 WaitForMultipleObject 및WaitForSingleObject와 같이 작동합니다.
디버그 빌드에서 이러한 함수는 전역 제한 시간 값을 사용합니다. 제한 시간이 만료되면 함수는 어설션을 트리거합니다. 다음 레지스트리 키는 시간 제한 값을 밀리초 단위로 지정합니다.
HKEY_LOCAL_MACHINE\<DebugRoot>\<Module Name>\TIMEOUT
여기서 <DebugRoot> 는 출력 함수 디버그 항목에 설명된 레지스트리 경로입니다.
키가 없으면 제한 시간 값은 기본적으로 INFINITE로 설정됩니다. DbgSetWaitTimeout 함수를 사용하여 레지스트리 항목을 재정의할 수 있습니다.
함수 | Description |
---|---|
DbgSetWaitTimeout | 디버깅 제한 시간 값을 설정합니다. |
DbgWaitForMultipleObjects | 지정된 개체의 신호가 전송될 때까지 대기합니다. |
DbgWaitForSingleObject | 개체가 신호를 받기를 기다립니다. |