首页
社区
课程
招聘
[求助]请问如何得知一个内核结构的成员,大小?
发表于: 2012-8-10 22:15 4449

[求助]请问如何得知一个内核结构的成员,大小?

2012-8-10 22:15
4449
本人小白一个,如果问的问题太简单了,请见谅
最近一直在找IRP中IO_STACK_LOCATION的成员和结构体大小,一直没找到详细的,大部分都是笼统的解释,微软MSDN上的那个隐藏了部分成员变量,现在就想知道IO_STACK_LOCATION的大小,请问如何得到?这个结构里面有什么成员变量有办法得到吗

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
在 windbg 中看:

dt _io_stack_location
2012-8-10 22:16
0
雪    币: 103
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
Thanks a lot!
2012-8-10 22:45
0
雪    币: 103
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
另外还想问一下,我想查找IoGetNextIrpStackLocation这个函数,在windbg中输入u IoGetNextIrpStackLocation显示无法找到是怎么回事?谢谢啦!
2012-8-10 22:48
0
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
这是个宏,不是函数:
#define IoGetNextIrpStackLocation(Irp)          ((Irp)->Tail.Overlay.CurrentStackLocation - 1)
2012-8-11 01:03
0
雪    币: 103
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
十分感谢!不过你是怎么知道这个宏定义的吗?我上网搜了半天也没搜到,MSDN上面只给了一个声明

PIO_STACK_LOCATION IoGetNextIrpStackLocation(
  __in  PIRP Irp
);


这个代码让我误以为是函数,MSDN上面写着是对IoGetNextIrpStackLocation routine的解释,这个routine一直没搞懂确切的意思,以前在Win32编程中没怎么遇到这个词

我之后就在计算机里面搜索了一下IoGetNextIrpStackLocation,找到几个头文件,宏定义都是这样的

#define IoGetNextIrpStackLocation sdv_IoGetNextIrpStackLocation


然后搜索了一下sdv_IoGetNextIrpStackLocation的定义,在一个.c文件里面搜索到了

sdv_IoGetNextIrpStackLocation(
    IN PIRP pirp
    )
{
    if (pirp == &sdv_harnessIrp) {
        return &sdv_harnessStackLocation_next;
    } else if (pirp == &sdv_other_harnessIrp) {
        return &sdv_other_harnessStackLocation_next;
    } else {
        return &sdv_harnessStackLocation;
    }
}


感觉好像搜索错了地方,我这里书本上写的IoGetNextIrpStackLocation汇编代码也就几句话,没有这么多,请问你的宏定义是从哪里找到的,谢谢!
2012-8-11 17:02
0
雪    币: 623
活跃值: (40)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
7
在 WRK 里找
2012-8-11 17:38
0
游客
登录 | 注册 方可回帖
返回
//