日期:2014-05-17  浏览次数:20782 次

请教下底层里面的问题,主要是关于内层方面的
typedef struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress; // 区域基地址。
PVOID AllocationBase; // 分配基地址。
DWORD AllocationProtect; // 区域被初次保留时赋予的保护属性。
SIZE_T RegionSize; // 区域大小(以字节为计量单位)。
DWORD State; // 状态(MEM_FREE、MEM_RESERVE或 MEM_COMMIT)。
DWORD Protect; // 保护属性。
DWORD Type; // 类型。
} MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION; 
1.我们编写的应用程序操作的都是虚拟地址。是通过操作系统转换成物理地址。
2.BaseAddress与AllocationBase的区别?目前的理解是baseaddress是指一个逻辑地址在虚拟地址上的所在的分页的基地址。 allocationbase是程序在虚拟地址上的基地址。
如:分页有p1,p2,p3...如果有一个地址在p2上在baseaddress就是p2的基地址,"而AllocationBase一直都是p1的基地址",引号的这句理解有问题,通过测试。
allocationbase难道是每个段的基地址?
3.MEMORY_BASIC_INFORMATION这个结构代表的是虚拟地址上的一个地址区间?
能帮解释下这个结构代表的意义吗

------解决方案--------------------
你来错地方了 不过google了一下 还是帮你找到了
http://hi.baidu.com/drunkdream/item/54d30512f638ef9e98ce33c2

http://bbs.csdn.net/topics/10006871
看#8