The Second THREADINFO Compatibility Flags

Version 5.0 seems to have exhausted the dwCompatFlags in the THREADINFO and CLIENTINFO structures, prompting a second set. The dwCompatFlags2 were initially 32-bit too, but version 6.1 widened them to a 64-bit qwCompatFlags2. Type information in symbol files for WIN32K.SYS in Windows 7 (only) enumerates the defined flags as ULONGLONG bit fields. What type they have in earlier versions, e.g., ULONG or UINT, is not known.

The table below can list Microsoft’s names only for those bit fields that were defined in version 6.1, i.e., the one version for which the names are known to have been publicly (if obscurely) disclosed. It seems unlikely that I shall ever attempt an enumeration of which flags are defined in which versions, let alone to describe any that have been added since, but you never know.

Mask Definition Versions
0x00000000`00000001
ULONGLONG AnimationOff : 1;
 
0x00000000`00000002
ULONGLONG KCOff : 1;
 
0x00000000`00000004
ULONGLONG No50ExStyles : 1;
 
0x00000000`00000008
ULONGLONG NoDrawPatRect : 1;
 
0x00000000`00000010
ULONGLONG MsShellDlg : 1;
 
0x00000000`00000020
ULONGLONG NoDDETrackDying : 1;
 
0x00000000`00000040
ULONGLONG GiveUpForeground : 1;
 
0x00000000`00000080
ULONGLONG ActiveMenus : 1;
 
0x00000000`00000100
ULONGLONG EditNoMouseHide : 1;
 
0x00000000`00000200
ULONGLONG NoBatching : 1;
 
0x00000000`00000400
ULONGLONG FontSubs : 1;
 
0x00000000`00000800
ULONGLONG No50ExStyleBits : 1;
 
0x00000000`00001000
ULONGLONG NoCustomPaperSize : 1;
 
0x00000000`00002000
ULONGLONG DDE : 1;
 
0x00000000`00004000
ULONGLONG DefaultCharset : 1;
 
0x00000000`00008000
ULONGLONG NoCharDeadKey : 1;
 
0x00000000`00010000
ULONGLONG TryExceptCallWndProc : 1;
 
0x00000000`00020000
ULONGLONG NoInitFlagsOnFocus : 1;
 
0x00000000`00040000
ULONGLONG DDENoSync : 1;
 
0x00000000`00080000
ULONGLONG NoGhost : 1;
 
0x00000000`00100000
ULONGLONG DDENoAsyncReg : 1;
 
0x00000000`00200000
ULONGLONG StrictLLHook : 1;
 
0x00000000`00400000
ULONGLONG NoShadow : 1;
 
0x00000000`00800000
ULONGLONG ForceFusion : 1;
 
0x00000000`01000000
ULONGLONG NoTimeCbProtect : 1;
 
0x00000000`02000000
ULONGLONG DpiAwware : 1;
 
0x00000000`04000000
ULONGLONG OpenGLEMF : 1;
 
0x00000000`08000000
ULONGLONG TransparentBltMirror : 1;
 
0x00000000`10000000
ULONGLONG NoPaddedBorder : 1;
 
0x00000000`20000000
ULONGLONG ForceLegacyResizeNCMetr : 1;
 
0x00000000`40000000
ULONGLONG HardwareMixer : 1;
 
0x00000000`80000000
ULONGLONG NoSoftCursOnMoveSize : 1;
 
0x00000001`00000000
ULONGLONG NoWindowArrangement : 1;
 
 
ULONGLONG SpareCompatFlags2 : 31;