Geoff Chappell - Software Analyst
For the 2004 edition of Windows 10, the KTHREAD has a new 32-bit set of bit fields. The ThreadFlags3 itself is a LONG volatile in union with an anonymous structure of ULONG bit fields:
Mask | Definition | Versions | Remarks |
---|---|---|---|
0x000000FF |
ULONG BamQosLevel : 8; |
2004 and higher (x86) | previously 2 bits in ThreadFlags |
ULONG ThreadFlags3Reserved : 8; |
2004 and higher (x64) | ||
0x00000300 |
ULONG PpmPolicy : 2 ; |
2004 and higher | previously in ThreadFlags2 |
ULONG ThreadFlags3Reserved2 : 22; |
2004 and higher |
The x64 KTHREAD also had the BamQosLevel as 2 bits in union with ThreadFlags but accommodates the widening to 8 bits by moving it to the union with ThreadFlags2. It is not yet clear what’s intended by this difference of treatment.