Wait Debugging


DirectShow provides facilities for wait debugging. These facilities build on the Microsoft® Win32® HANDLE-based wait facilities, but you can expand them to debug specific wait conditions.

In the debug build, you can update the global current time-out with calls to DbgSetWaitTimeout. Updating the current time-out does not affect debug wait calls that are already waiting. If this is a debug build and a value named TIMEOUT exists in the registry under the HKEY_LOCAL_MACHINE\SOFTWARE\Debug\GLOBAL key, the TIMEOUT value is used as the initial current time-out. TIMEOUT must be a REG_DWORD value and is measured in milliseconds. If not, the initial time-out defaults to INFINITE.

Call the following functions to perform debuggable waiting.
Name Description
DbgSetWaitTimeout Updates the current time-out value.
DbgWaitForMultipleObjects Waits for an array of handles to be signaled, or for the current time-out to expire.
DbgWaitForSingleObject Waits for a handle to be signaled, or for the current time-out to expire.


DbgSetWaitTimeout

Updates the global current time-out value. (This update does not apply to debug wait calls that are already waiting.)

void WINAPI DbgSetWaitTimeout(
  DWORD dwTimeout
  );

Parameters
dwTimeout
New time-out value in milliseconds, or INFINITE.
Remarks

DbgSetWaitTimeout is ignored unless DEBUG is defined when the Microsoft® DirectShow™ headers are included.


DbgWaitForMultipleObjects

In a debug build, waits for the current time-out, or the array of handles to become signaled, whichever comes first. In other builds, this is treated as a call to the Microsoft Win32® WaitForMultipleObjects function, with an INFINITE time-out.

DWORD WINAPI DbgWaitForMultipleObjects(
  DWORD nCount,
  CONST HANDLE *lpHandles,
  BOOL bWaitAll
  );

Parameters
nCount
Number of entries in the lpHandles array.
lpHandles
Array of HANDLE values.
bWaitAll
TRUE if all handles in the array must become signaled to satisfy the wait. FALSE if any one handle can satisfy the wait.


DbgWaitForSingleObject

In a debug build, waits for the current time-out, or the given handle to become signaled. In other builds, this is treated as a call to the Microsoft Win32 WaitForSingleObject function, with an INFINITE time-out.

DWORD WINAPI DbgWaitForSingleObject(
  HANDLE h
  );

Parameters
h
HANDLE value.

© 1997 Microsoft Corporation. All rights reserved. Terms of Use.