Open棟梁Project - マイクロソフト系技術情報 Wiki
仮想アドレス空間にマッピングされた各コミット済みページは
に支持される。
仮想アドレスに直接関係しないプロセスの所有する物理メモリ
32bitの仮想アドレス空間 | 64bitの仮想アドレス空間 |
合計4GB | 合計16TB |
2GBがカーネルモード | 8TBがカーネルモード |
2GBがユーザモード | 8TBがユーザモード |
32bitのデフォルトで
AWEにより、32bitプロセスでも仮想アドレス空間の拡張可能。
(APPがAWEをサポートしていればAWEのAPIを使用して独自にメモリ管理をする)
また、3GBスイッチでユーザモードをx86:3GB、x64:4GB※に拡張可能。
※ 32ビットプロセス(WOW64)でアクセス可能な仮想アドレス空間にカーネル空間が存在しないため、4GBをフルに活用できる。
カーネルモード・ユーザモードの仮想アドレス空間
カーネルモードの仮想アドレス空間は、全てのプロセスで共有される。
※ これらの調査の操作は、Process Explorerに統合されている(★)。
以下のツールも利用可能。
を使用すると、プロセスで利用されている.sys(ドライバ)を確認できる。
メモリ プール(ページ プールおよび非ページ プール)
ページング可能なメモリ プール
(レジストリやメモリ マップ ファイルを表すデータ構造が格納される)
ページング不可能なメモリ プール
(カーネルとデバイス ドライバーがシステムがページ フォールトを
処理できないときにアクセスされる可能性があるデータを格納している。)
カーネル モードで動作するモジュール(ドライバ)から確保され、
モジュール(ドライバ)を識別可能なタグ名が付与される。
以下のAPIにより確保される。
PVOID ExAllocatePoolWithTag( IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag <<<<< );
このタグを利用してリークの原因となっているモジュールを特定できる。