Во втором поле показывается тип региона Free (свободный), Private (закрытый), Image (образ) или Mapped (проецируемый). Эти типы описаны в следующей таблице,
Тип | Описание |
Free | Этот диапазон виртуальных адресов не сопоставлен ни с каким типом физической памяти. Его адресное пространство не зарезервировано, приложение может зарезервировать регион по указанному базовому адресу или в любом месте в границах свободного региона |
Private | Этот диапазон виртуальных адресов сопоставлен со страничным файлом. |
Image | Этот диапазон виртуальных адресов изначально был сопоставлен с образом ЕХЕ- или DLL-файла, проецируемого в память, но теперь, возможно, уже нет. Например, при записи в глобальную переменную из образа модуля механизм поддержки "копирования при записи" выделяет соответствующую страницу памяти из страничного файла, а не исходною образа файла. |
Mapped | Этот диапазон виртуальных адресов изначально был сопоставлен с файлом данных, проецируемым в память, но теперь, возможно, уже нет. Например, файл данных мог быть спроецирован с использованием механизма поддержки "копирования при записи". Любые операции записи в этот файл приведут к тому, что соответствующие страницы памяти будут выделены из страничного файла, а не из исходного файла данных. |
В третьем поле сообщается размер региона в байтах. Например, система спроецировала образ User32.dll по адресу 0x77E20000. Когда она резервировала адресное пространство для этого образа, ей понадобилось 401 408 байтов. Не забудьте, что в третьем поле всегда содержатся значения, кратные размеру страницы, характерному для данного процессора (4096 байтов для x86).В четвертом поле показано количество блоков в зарезервированном регионе. Блок — это неразрывная группа страниц с одинаковыми атрибутами защиты, связанная с одним и тем же типом физической памяти .Для свободных регионов это значение всегда равно 0, так как им не передается физическая память. (Поэтому в четвертой графе никаких данных для свободных регионов не приводится.) Но для занятых регионов это значение может колебаться в пределах от 1 до максимума (его вычисляют делением размера региона на размер страницы). Скажем, у региона, начинающегося с адреса Ox77E20000, размер — 401 408 байтов. Поскольку процесс выполняется на процессоре x86 (страницы памяти по 4096 байтов), максимальное количество блоков в этом регионе равно 98 (401 408/4096); ну а, судя по карте, в нем содержится 4 блока.
В пятом поле — атрибуты защиты региона. Здесь используются следующие сокращения: E - execute (исполнение), R - read (чтение), W - write (запись), С - copy-onwrite (копирование при записи). Если ни один из атрибутов в этой графе не указан, регион доступен без ограничений. Атрибуты защиты не присваиваются и свободным регионам. Кроме того, здесь Вы никогда не увидите флагов атрибутов защиты PAGE_ GUARD или PAGE_NOCACHE — они имеют смысл только для физической памяти, а не для зарезервированного адресного пространства. Атрибуты защиты присваиваются регионам только эффективности ради и всегда замещаются атрибутами защиты, присвоенными физической памяти.
В шестом (и последнем) поле кратко описывается содержимое текущего региона. Для свободных регионов оно всегда пустое, а для закрытых — обычно пустое
Попробуем увеличить детализацию адресного пространства (по сравнению с тем, что показано в таблице 13-2). Например, таблица 13-3 показывает ту же карту адресного пространства, но в другом "масштабе": по ней можно узнать, из каких блоков состоит каждый регион.
Базовый адрес | Тип | Размер | Блоки | Атрибут(ы) защиты | Описание |
00000000 | Free | 65536 | |||
00010000 | Private | 4096 | 1 | -RW- | |
00010000 | Private | 4096 | -RW- | ||
00011000 | Free | 61440 | |||
00020000 | Private | 4096 | 1 | -HW- | |
00020000 | Private | 4096 | -HW- --- | ||
00021000 | Free | 61440 | |||
00030000 | Private | 1048576 | 3 | -RW- | Стек потока |
00030000 | Reserve | 905216 | -RW- s— | ||
0010D000 | Private | 4096 | -RW- G- | ||
0010E000 | Private | 139264 | -RW- --- | ||
00130000 | Private | 1048576 | ? | -RW- | |
00130000 | Private | 36864 | -RW- --- | ||
00139000 | Reserve | 1011712 | -RW- --- | ||
00230000 | Mapped | 65536 | 2 | -RW- | |
00230000 | Mapped | 4096 | -RW- —— | ||
00231000 | Reserve | 61440 | -RW- --- | ||
00240000 | Mapped | 90112 | 1 | -R — | \Device\HarddiskVoluume1\WTNNT\system32\unicode.nls |
00240000 | Happed | 90112 | R | ||
00256000 | Free | 409GO | |||
00260000 | Mapped | 208896 | 1 | -R-- | \Device\HarddiskVoluume1\WTNNT\system32\locale.nls |
00260000 | Mapped | 208896 | -R-- --- | ||
00293000 | Free | 53248 | |||
002А0000 | Happed | 266240 | 1 | -R — | \Device\HarddiskVoluume1\WTNNT\system32\sortkey.nls |
002А0000 | Mapped | 266240 | -R-- --- | ||
002Е1000 | Free | 61440 | |||
002F0000 | Mapped | 16384 | 1 | -R- | \Device\HarddiskVoluume1\WTNNT\system32\sorttbls.nls |
002F0000 | Mapped | 16384 | -R-- --- | ||
002F4000 | Free | 49152 | |||
00300000 | Mapped | 819200 | 4 | ER- | |
00300000 | Mapped | 16384 | ЕR-- —-- | ||
00304000 | Reserve | 770048 | ER-- --- | ||
003C0000 | Mapped | 8192 | ER-- --- | ||
ОО3С2000 | Reserve | 24576 | ER-- --- | ||
ОО3С8000 | Free | 229376 | |||
00400000 | Image | 106496 | 5 | ERWC | С:\CD\x86\Debug\14_VMMap.exe |
00400000 | Image | 4096 | -R-- --- | ||
00401000 | Image | 81920 | ЕR-- —-- | ||
00415000 | Image | 4096 | -R-- --- | ||
00416000 | Image | 8192 | -RW- --- | ||
00418000 | Image | 8192 | -R-- --- | ||
0041А000 | Free | 24576 | |||
00420000 | Mapped | 274432 | 1 | -R- | |
00420000 | Mapped | 274432 | -R- --- | ||
00463000 | Free | 53248 | |||
00470000 | Mapped | 3145726 | 2 | ER-- | |
00470000 | Mapped | 274432 | ER-- --- | ||
004B3000 | Reserve | 2871296 | ER-- --- | ||
00770000 | Private | 4096 | 1 | -RW- --- | |
00770000 | Privale | 4096 | -RW- --- | ||
00771000 | Free | 61440 | |||
00780000 | Pr ivate | 4096 | 1 | -RW- --- | |
00780000 | Private | 4096 | -RW- --- | ||
00781000 | Free | 61440 | |||
00790000 | Private | 65536 | 2 | -RW- --- | |
00790000 | Private | 20480 | -RW- --- | ||
00795000 | Reserve | 45056 | -RW- --- | ||
007А0000 | Mapped | 8192 | 1 | -R-- --- | \Device\HarddiskVolume1\WINNT\system32\ctype.nls |
007А0000 | Mapped | 8192 | -R-- --- | ||
007A2000 | Free | 57344 | |||
007В0000 | Private | 524288 | 2 | -RW- --- | |
007В0000 | Private | 4096 | -RW- --- | ||
007В1000 | Reserve | 520192 | -RW- --- | ||
00830000 | Free | 1763311616 | |||
699D0000 | Image | 45056 | 4 | ERWC | С:\WINNT\Systern32\PSAPI.dll |
699D0000 | Image | 4096 | -R-- --- | ||
69901000 | Image | 16384 | ER- --- | ||
699D5000 | Image | 16384 | -RWC --- | ||
699D9000 | Image | 8192 | -R-- --- | ||
699DB000 | Free | 238505984 | |||
77D50000 | Imago | 450560 | 4 | ERWC | C:\WINNT\system32\RPCRT4.DLL |
77D50000 | Image | 4096 | -R-- --- | ||
77D51000 | image | 421888 | ER-- --- | ||
77DB8000 | Image | 409G | -RW- --- | ||
77DB9000 | Image | 20480 | -R-- --- | ||
77DBE000 | Free | 8192 | |||
77DC0000 | Image | 344064 | 5 | ERWC | С:\WINNT\syatem32\ADVAPI32.dll |
77DC0000 | Image | 4096 | -R-- --- | ||
77DС1000 | Image | 307200 | ER-- --- | ||
77Е0С000 | Image | 4096 | -RW- --- | ||
77E00000 | Image | 4096 | -RWC --- | ||
77Е0E000 | Image | 24576 | -R-- --- | ||
77Е14000 | Free | 49152 | |||
77E20000 | Image | 401408 | 4 | ERWC | С:\WINNT\system32\USER32.dll |
/7Е20000 | Image | 4096 | -R-- --- | ||
77Е21000 | Image | 348160 | ER-- --- | ||
77Е76000 | Image | 4096 | -RW- --- | ||
77Е77000 | Image | 45056 | -R-- --- | ||
77Е82000 | Free | 57344 | |||
77Е90000 | Image | 720896 | 5 | ERWC | С \WINNT\system32\KERNEL32.dll |
77Е90000 | Image | 4096 | -R-- --- | ||
77Е91000 | Image | 368640 | ER-- --- | ||
77ЕЕВ000 | Image | 8192 | -RW- --- | ||
77EED000 | Image | 4096 | -RWC --- | ||
77ЕЕЕ000 | Image | 335872 | -R-- --- | ||
77F40000 | Image | 241664 | 4 | ERWC | С \WINNT\system32\GDI32.DLL |
77F40000 | Image | 4096 | -R-- --- | ||
77F41000 | Image | 221184 | ER-- --- | ||
77F77000 | Image | 4096 | -RW- --- | ||
77F78000 | Image | 12288 | -R-- --- | ||
77F7B000 | Free | 20480 | |||
77F80000 | Image | 483328 | 5 | ERWC | С \WINT\System32\ntdll.dll |
77F80000 | Image | 409b | -R-- --- | ||
77F81000 | Image | 299008 | ER-- --- | ||
77FCA000 | Image | 8192 | RW- --- | ||
77FCC000 | Image | 4096 | -RWC --- | ||
77FCD000 | Image | 167936 | -R-- --- | ||
77FF6000 | Free | 40960 | |||
78000000 | Image | 290816 | 6 | ERWC | С \WINNT\system32\MSVCRT.dll |
78000000 | Image | 4096 | -R-- --- | ||
78001000 | Image | 208896 | ER-- --- | ||
78031000 | Image | 32768 | -R-- --- | ||
7803С000 | Image | 12288 | -RW- --- | ||
7803F000 | Image | 16384 | -RWC --- | ||
78043000 | Image | 16384 | -R-- --- | ||
78047000 | Free | 124424192 | |||
7F6F0000 | Mapped | 1048576 | 2 | ER-- --- | |
7F6F0000 | Mapped | 28672 | ER-- --- | ||
7F6F7000 | Reserve | 1019904 | ER-- --- | ||
7F7F0000 | Free | 8126464 | |||
7FFB0000 | Mapped | 147456 | 1 | -R-- --- | |
7FFB0000 | Mapped | 147456 | -R-- --- | ||
7FFD4000 | Free | 40960 | |||
7FFDE000 | Private | 4096 | 1 | ERW --- | |
7FFDE000 | Private | 4096 | ERW --- | ||
7FFDF000 | Private | 4096 | 1 | ERW --- | |
7FFDF000 | Private | 4096 | ERW --- | ||
7FFF0000 | Private | 65536 | 2 | -R-- --- | |
7FFE0000 | Private | 4096 | -R-- --- | ||
7FFE1000 | Reserve | 61440 | -R-- --- |
Таблица 13-3. Образец карты адресного пространства процесса (с указанием блоков внутри регионов) в Windows 2000 на 32-разрядном процессоре типа x86