KDriver
驱动中牛
驱动中牛
  • 注册日期2001-06-09
  • 最后登录2008-09-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2088回复:7

关于Programming WDM的源代码

楼主#
更多 发布于:2001-10-22 15:45
为什么在Programming WDM的代码中,都有这个函数,它是干什么用的?

#if DBG && defined(_X86_)
#pragma LOCKEDCODE

extern "C" void __declspec(naked) __cdecl _chkesp()
{
_asm je okay
ASSERT(! DRIVERNAME " - Stack pointer mismatch!");
okay:
_asm ret
}

#endif // DBG
“萎软”,是Microsoft的小名!
dazzy
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-08-12
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望10点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-10-23 12:40
比较堆栈:
在调用某个api之前,将堆栈寄存器(esp)的值保存起来,在调用完此api后,将原来的保存值与新的esp比较,此时调用_chkesp(),如果相等,就会jump okey;(正常情况下应该相等);否则会执行ASSERT()宏。
兄弟,你研究这玩意儿有用吗!_chkesp() 这个api不作任何有用的事,堆栈出错,程序我估计也无法运行了。
其实,涉及到对堆栈的操作都会这么干,而不只是调用api时。
[dazzy 编辑于 2001-10-23 12:46]
KDriver
驱动中牛
驱动中牛
  • 注册日期2001-06-09
  • 最后登录2008-09-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-10-23 13:16
我并没有看到程序中什么地方调用了这个函数呀?

我没有研究这个冬冬,只是觉得这个东西多余,但高手又把它放在这里,就应该有点道理,所以问一下。。。
“萎软”,是Microsoft的小名!
dazzy
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-08-12
  • 粉丝1
  • 关注0
  • 积分0分
  • 威望10点
  • 贡献值1点
  • 好评度10点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-10-23 17:07
cl 编译选项 GZ 产生运行时调试检测,在产生debug版本时连接会连接一个函数,叫做__chkesp(),这个函数需要你提供。
matt
驱动中牛
驱动中牛
  • 注册日期2001-07-24
  • 最后登录2016-02-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-10-23 17:14
顺便问一下:LOCKEDCODE是什么意思?
System Internals http://sys.xiloo.com
KDriver
驱动中牛
驱动中牛
  • 注册日期2001-06-09
  • 最后登录2008-09-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-10-24 09:16
你看头文件定义,LOCKEDCODE是 code_seg( ),和起来就是

#pragma code_seg()把其后的代码都放到了非分页内存中。。。
“萎软”,是Microsoft的小名!
matt
驱动中牛
驱动中牛
  • 注册日期2001-07-24
  • 最后登录2016-02-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-10-24 09:18
Thanks。

System Internals http://sys.xiloo.com
z_j_cd
驱动中牛
驱动中牛
  • 注册日期2001-09-13
  • 最后登录2012-11-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-10-24 10:43
学到东西
游客

返回顶部