Geoff Chappell - Software Analyst
The MI_PARTITION_ZEROING structure (formally _MI_PARTITION_ZEROING) is here thought to exist only as a subdivision of the MI_PARTITION, specifically as the latter’s Zeroing member.
The MI_PARTITION_ZEROING structure is an implementation detail and can be expected to change between builds. The following changes of size give some rough indication of the variability so far:
Version | Size (x86) | Size (x64) |
---|---|---|
10.0 | 0x2C | 0x48 |
1511 | 0x40 | 0x68 |
1607 to 1703 | 0x3C | 0x60 |
1709 to 1903 | 0x40 | 0x68 |
2004 | 0x74 | 0xB0 |
The sizes in the preceding table and the offsets, names and types in the next are from type information in public symbol files for the kernel.
Offset (x86) | Offset (x64) | Definition | Versions |
---|---|---|---|
0x00 | 0x00 |
KEVENT PageEvent; |
10.0 and higher |
0x10 (10.0 to 1903) | 0x18 (10.0 to 1903) |
BOOLEAN ThreadActive; |
10.0 to 1903 |
0x11 (1709 to 1903); 0x10 |
0x19 (1709 to 1903); 0x18 |
UCHAR ThreadPriorityStatic; |
1709 and higher |
0x11 | 0x19 |
BOOLEAN AdaptiveZeroingEnabled; |
2004 and higher |
0x14 | 0x1C |
LONG ZeroFreePageSlistMinimum; |
10.0 and higher |
0x18 (10.0 to 1511) | 0x20 (10.0 to 1511) |
MMPTE *FirstReservedZeroingPte; |
10.0 to 1511 |
0x1C (10.0 to 1511); 0x18 |
0x28 (10.0 to 1511); 0x20 |
WORK_QUEUE_ITEM RebalanceZeroFreeWorkItem; |
10.0 and higher |
0x28 | 0x40 |
LONG volatile NodeCount; |
2004 and higher |
0x2C | 0x48 |
KGATE LargeBootZeroingComplete; |
2004 and higher |
0x3C | 0x60 |
MI_WRITE_CALIBRATION WriteCalibration; |
2004 and higher |
0x54 | 0x80 |
BOOLEAN IpiCalibrationFailed; |
2004 and higher |
0x58 | 0x84 |
LONG volatile ActiveProcessorsForIpiCalibration; |
2004 and higher |
0x5C | 0x88 |
LONG volatile NodesReadyForIpiCalibration; |
2004 and higher |
0x60 | 0x90 |
KEVENT ReleaseNodeZeroingThreads; |
2004 and higher |
0x2C (1511); 0x28 (1607 to 1903) |
0x48 (1511); 0x40 (1607 to 1903) |
LONG volatile ThreadCount; |
1511 to 1903 |
0x30 (1511); 0x2C (1607 to 1903) |
0x50 (1511); 0x48 (1607 to 1903) |
KGATE Gate; |
1511 to 1903 |
0x3C (1709 to 1903); 0x70 |
0x60 (1709 to 1903); 0xA8 |
MI_ZERO_THREAD_CONTEXT *ThreadContext; |
1709 and higher |