!vadump

!vadump 扩展显示所有虚拟内存范围及其相应的保护信息。

!vadump [-v] 

参数

-v
也会导致显示包含有关每个原始分配区域的信息。 由于在分配内存后,区域内的单个地址的保护可能会被更改(例如通过 VirtualProtect 更改),因此这个较大区域的原始保护状态可能与区域内每个范围的保护状态有所不同。

DLL

Uext.dll

其他信息

要查看单个虚拟地址的内存保护信息,请使用 !vprot。 有关内存保护的信息,请参阅 Mark Russinovich 和 David Solomon 编写的 Microsoft Windows 内部资料

注解

以下是示例:

0:000> !vadump
BaseAddress:       00000000
RegionSize:        00010000
State:             00010000  MEM_FREE
Protect:           00000001  PAGE_NOACCESS

BaseAddress:       00010000
RegionSize:        00001000
State:             00001000  MEM_COMMIT
Protect:           00000004  PAGE_READWRITE
Type:              00020000  MEM_PRIVATE
.........

在此显示中,State 行显示从指定 BaseAddress 开始的内存范围的状态。 可能的状态值为 MEM_COMMIT、MEM_FREE 和 MEM_RESERVE。

Protect 行显示此内存范围的保护状态。 可能的保护值为 PAGE_NOACCESS、PAGE_READONLY、PAGE_READWRITE、PAGE_EXECUTE、PAGE_EXECUTE_READ、PAGE_EXECUTE_READWRITE、PAGE_WRITECOPY、PAGE_EXECUTE_WRITECOPY 和 PAGE_GUARD。

Type 行显示内存类型。 可能的值为 MEM_IMAGE、MEM_MAPPED 和 MEM_PRIVATE。

下面是一个使用 -v 参数的示例:

0:000> !vadump -v
BaseAddress:       00000000
AllocationBase:    00000000
RegionSize:        00010000
State:             00010000  MEM_FREE
Protect:           00000001  PAGE_NOACCESS

BaseAddress:       00010000
AllocationBase:    00010000
AllocationProtect: 00000004  PAGE_READWRITE
RegionSize:        00001000
State:             00001000  MEM_COMMIT
Protect:           00000004  PAGE_READWRITE
Type:              00020000  MEM_PRIVATE
.........

使用 -v 时,AllocationProtect 行会显示整个区域创建时的默认保护。 Protect 行显示对该特定地址的实际保护。