MEMORY_PARTITION_INFORMATION_CLASS

The MEMORY_PARTITION_INFORMATION_CLASS (formally _MEMORY_PARTITION_INFORMATION_CLASS) is an enumeration whose values are intended as input to the NtManagePartition function. Different values select different operations to perform on one or two memory partitions.

Availability

Memory partitions are new for Windows 10. From this start they had an API for user-mode callers. The MEMORY_PARTITION_INFORMATION_CLASS is part of this API, starting with the original Windows 10 and continuing up to and including the 1703 release. For the 1709 release, Microsoft reclassified the API as belonging to the Process Structure modules of the kernel, rather than to the Memory Manager. A side-effect is that MEMORY_PARTITION_INFORMATION_CLASS was renamed to PARTITION_INFORMATION_CLASS.

Documentation Status

The MEMORY_PARTITION_INFORMATION_CLASS is not documented. Microsoft’s names for the MEMORY_PARTITION_INFORMATION_CLASS itself and its values are available, however. As usual when it comes to Microsoft’s names for otherwise undocumented material, they’re knowable from type information in symbol files. Not at all usual is which symbol files—not the kernel, where the enumeration is interpreted and the relevant functions are implemented, nor even NTDLL, but various higher-level user-mode DLLs. The most conspicuous may be URLMON.DLL, i.e., a component of Internet Explorer but which evidently is built with access to far more declarations and definitions for low-level Windows programming than is many a lower-level component of Windows itself—and certainly more than Microsoft publishes for use by application programmers outside Microsoft. Note that these anti-competitive practices continue long, long, long after an anti-trust settlement might have been supposed to end them.

Enumeration

Value Name Versions
0 SystemMemoryPartitionInformation 10.0 to 1703
1 SystemMemoryPartitionMoveMemory 10.0 to 1703
2 SystemMemoryPartitionAddPagefile 10.0 to 1703
3 SystemMemoryPartitionCombineMemory 10.0 to 1703
4 SystemMemoryPartitionInitialAddMemory 10.0 to 1703
5 SystemMemoryPartitionGetMemoryEvents 1703

All these defined values continue to later versions but in the PARTITION_INFORMATION_CLASS.