Undocumented functions of NTDLL

2OOO, 19 December


THREAD_INFORMATION_CLASS
THREAD_INFORMATION_CLASS

typedef enum _THREAD_INFORMATION_CLASS {

ThreadBasicInformation, ThreadTimes, ThreadPriority, ThreadBasePriority, ThreadAffinityMask, ThreadImpersonationToken, ThreadDescriptorTableEntry, ThreadEnableAlignmentFaultFixup, ThreadEventPair, ThreadQuerySetWin32StartAddress, ThreadZeroTlsCell, ThreadPerformanceCount, ThreadAmILastThread, ThreadIdealProcessor, ThreadPriorityBoost, ThreadSetTlsArrayAddress, ThreadIsIoPending, ThreadHideFromDebugger } THREAD_INFORMATION_CLASS, *PTHREAD_INFORMATION_CLASS;


THREAD_INFORMATION_CLASS is information class enumerated type for use with NtQueryInformationThread and NtSetInformationThread calls.




ThreadBasicInformation
QUERY mode only. Required result buffer length is 0x1C. Output buffer points to THREAD_BASIC_INFORMATION structure.

ThreadTimes
QUERY mode only. Required result buffer length is 0x20. Output buffer points to THREAD_TIMES_INFORMATION structure.

ThreadPriority
SET mode only. Required information buffer size is 0x04 bytes. Output buffer points to ULONG value.
(called from ADVAPI32.dll performance functions)

ThreadBasePriority
SET mode only. Required information buffer size is 0x04 bytes. Output buffer points to ULONG value.
(called from Kernel32.dll SetThreadPriority)

ThreadAffinityMask
SET mode only. Required information buffer size is 0x04 bytes. Output buffer points to ULONG value.
(called from Kernel32.dll SetThreadAffinityMask)

ThreadImpersonationToken
SET mode only. Required information buffer size is 0x04 bytes. Output buffer points to HANDLE value.

ThreadDescriptorTableEntry
QUERY mode only. Required result buffer length is 0x0C. Output buffer points to DESCRIPTOR_TABLE_ENTRY structure defined in <windbgkd.h> from Win2000 DDK.

ThreadEnableAlignmentFaultFixup
SET mode only. Required information buffer size is 0x01 bytes. Output buffer points to BOOLEAN value.

ThreadEventPair
SET mode only. Required information buffer size is 0x04 bytes. Output buffer points to HANDLE value to EventPair object.

ThreadQuerySetWin32StartAddress
QUERY and SET mode. Required buffer length is 0x04 bytes. Buffer points to PVOID value specifing address of thread start routine.

ThreadZeroTlsCell
SET mode only. Required information buffer size is 0x04 bytes. Output buffer points to ULONG value.
(TlsID. Called from Kernel32.dll TlsFree())

ThreadPerformanceCount
QUERY mode only. Required result buffer length is 0x08. Output buffer points to LARGE_INTEGER value.

ThreadAmILastThread
QUERY mode only. Required result buffer length is 0x04. Output buffer points to Win32 predefined BOOL value.

ThreadIdealProcessor
SET mode only. Required information buffer size is 0x04 bytes. Output buffer points to ULONG value.
(Called from Kernel32.dll SetThreadIdealProcessor())

ThreadPriorityBoost
QUERY and SET mode. Required buffer length is 0x04 bytes. Buffer points to BOOLEAN value.

ThreadSetTlsArrayAddress
SET mode only. Required information buffer size is 0x04 bytes. Output buffer points to PVOID value specifing ThreadLocalStorage array address.

ThreadIsIoPending
Not implemented - STATUS_INVALID_INFO_CLASS.

ThreadHideFromDebugger
Not implemented - STATUS_INVALID_INFO_CLASS.




Documented by:
Tomasz Nowak
Reactos



Requirements:
Library: ntdll.lib


See also:
NtQueryInformationThread
NtSetInformationThread
THREAD_BASIC_INFORMATION
THREAD_TIMES_INFORMATION