!vadump

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

    !vadump [-v] 

参数

-v
使显示也包括有关每个原始分配区域的信息。 由于在 VirtualProtect分配内存后,区域内的单个地址可能会更改其保护,例如) ,此较大区域的原始保护状态可能不同于区域内每个范围的 (。

DLL

Windows 2000

Uext.dll

Windows XP 及更高版本

Uext.dll

其他信息

若要查看单个虚拟地址的内存保护信息,请使用 ! vprot。 有关内存保护的信息,请参阅Microsoft Windows 内部的 Russinovich 和 David 所罗门群岛。

备注

以下是示例:

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
.........

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

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

"类型" 行显示内存类型。 可能的值为 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" 行显示创建整个区域时使用的默认保护。 "保护" 行显示了此特定地址的实际保护。