GetUmsSystemThreadInformation function

Queries whether the specified thread is a UMS scheduler thread, a UMS worker thread, or a non-UMS thread.

Syntax

BOOL GetUmsSystemThreadInformation(
  HANDLE                         ThreadHandle,
  PUMS_SYSTEM_THREAD_INFORMATION SystemThreadInfo
);

Parameters

ThreadHandle

A handle to a thread. The thread handle must have the THREAD_QUERY_INFORMATION access right. For more information, see Thread Security and Access Rights.

SystemThreadInfo

A pointer to an initialized UMS_SYSTEM_THREAD_INFORMATION structure that specifies the kind of thread for the query.

Return Value

Returns TRUE if the specified thread matches the kind of thread specified by the SystemThreadInfo parameter. Otherwise, the function returns FALSE.

Remarks

The GetUmsSystemThreadInformation function is intended for use in debuggers, troubleshooting tools, and profiling applications. For example, thread-isolated tracing or single-stepping through instructions might involve suspending all other threads in the process. However, if the thread to be traced is a UMS worker thread, suspending UMS scheduler threads might cause a deadlock because a UMS worker thread requires the intervention of a UMS scheduler thread in order to run. A debugger can call GetUmsSystemThreadInformation for each thread that it might suspend to determine the kind of thread, and then suspend it or not as needed for the code being debugged.

Requirements

   
Minimum supported client Windows 7 with SP1 [desktop apps only],Windows 7 (64-bit only) and Windows Server 2008 R2 with KB977165 installed
Minimum supported server Windows Server 2008 R2 with SP1 [desktop apps only]
Target Platform Windows
Header winbase.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll