首页
社区
课程
招聘
[求助]如何获取一个内存对应的TAG?看过OS源码的大师来帮忙一下
发表于: 2012-7-11 13:25 5512

[求助]如何获取一个内存对应的TAG?看过OS源码的大师来帮忙一下

2012-7-11 13:25
5512
Poolmon.exe是一个内存泄漏检查工具,它可以监视到某中TAG标签的内核内存是否一直没有被释放,它会枚举出系统里所有的TAG类型值.我想获取一个内存地址对应的TAG(假设这个内存地址我们事先不知道是谁在什么时候被申请的,只是知道了这个地址,同时也不知道这个地址是否是这个内存块的首地址)看过OS源码的大师来帮忙一下,在windows xp平台,网络上有关NtQuerySystemInformation内核函数的应用比如:查询cpu以及内存使用情况、枚举系统进程、枚举系统内核模块等等功能的资料比比皆是,我们也都知道NtQuerySystemInformation提供了53种系统信息查询功能,唯独22号功能在我网络上我一直搜不到有关的资料,在extypes.h头文件里我查到如下两个数据结构:
typedef struct _SYSTEM_POOLTAG
{
    union
    {
        UCHAR Tag[4];//这个就是内存对应的TAG标签
        ULONG TagUlong;
    };
    ULONG PagedAllocs;//这个是不是指:TAG标签对应的分页内存块计数?自今我还没有找到有关的任何资料说明。
    ULONG PagedFrees;//这是指什么?是指TAG标签对应的分页内存块被释放的次数吗?
    SIZE_T PagedUsed;//这是指什么?
    ULONG NonPagedAllocs;//这个是不是指:TAG标签对应的非分页内存块计数?自今我还没有找到有关的任何资料说明。
    ULONG NonPagedFrees;//这是指什么?是指TAG标签对应的非分页内存块被释放的次数吗?
    SIZE_T NonPagedUsed;//这是指什么?
} SYSTEM_POOLTAG, *PSYSTEM_POOLTAG;
typedef struct _SYSTEM_POOLTAG_INFORMATION
{
    ULONG Count;//这个应该是SYSTEM_POOLTAG TagInfo[]的数组计数?自今我还没有找到有关的任何资料说明。
    SYSTEM_POOLTAG TagInfo[1];
} SYSTEM_POOLTAG_INFORMATION, *PSYSTEM_POOLTAG_INFORMATION;

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 122
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
高手呀。我知道你是谁,Ghoffice研究OS的那家伙,你好我是Clare(克莱尔)
2012-7-14 15:21
0
雪    币: 267
活跃值: (438)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
3
我不是Ghoffice研究OS的那家伙,我只是在这方面很菜的家伙。你可以帮帮忙吗?
2012-7-15 12:43
0
雪    币: 122
活跃值: (72)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
放心吧,这个问题,将在三年后为你解决。
2012-7-17 22:03
0
雪    币: 267
活跃值: (438)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
5


行,我等你。
2012-7-18 12:49
0
雪    币: 165
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
小伙子,你太年轻了 。 你以为这个论坛上真的有那么多人回复你的帖子? 其实,都是我一个人回的,不然我换个ID发同样的话给你看
2012-7-18 13:31
0
雪    币: 267
活跃值: (438)
能力值: ( LV9,RANK:190 )
在线值:
发帖
回帖
粉丝
7
那你帮帮忙吧。我是在网吧上的网,你如果有有关资料就发QQ邮件给我行不?
2012-7-18 13:35
0
游客
登录 | 注册 方可回帖
返回
//