NtQueryVirtualMemory を調べてみた
Windows 2003 Server から実装された QueryWorkingSetEx 関数
次はこれ、内部的に、ntdll.dll の関数 NtQueryVirtualMemory の第2パラメータを4にしてコールしてるだけなので
Windows 2000に実装できないか調べてみた。
第2引数は MEMORY_INFORMATION_CLASS なのだが、Microsoft の公式ドキュメントだと
typedef enum _MEMORY_INFORMATION_CLASS { MemoryBasicInformation } MEMORY_INFORMATION_CLASS; |
としか書いてなくて使い物にならない。
{ MemoryBasicInformation, /* 0 */ MemoryWorkingSetList, /* 1 */ MemorySectionName, /* 2 */ MemoryBasicVlmInformation, /* 3 */ MemoryWorkingSetExList /* 4 */ } MEMORY_INFORMATION_CLASS; |
実際はこんな感じ
NTOSKRNL.EXE を逆アセンブルしてみたところ、
Windows 2000 SP4でサポートしてるのは 0, 1, 2
Windows XP SP3でサポートしてるのは 0, 1, 2, 3
Windows Server 2003 が 0, 1, 2, 3, 4
なので、残念ながら、直接互換コードで拾ってくるのは無理らしい
Comments