找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4893|回复: 3

关于教程里[2-3]内核里使用内存 代码中的一点疑问

[复制链接]

8

主题

51

回帖

0

精华

银牌会员

积分
369
发表于 2016-8-8 12:30:14 | 显示全部楼层 |阅读模式
  1. KIRQL WPOFFx64()
  2. {
  3. KIRQL irql=KeRaiseIrqlToDpcLevel();
  4. UINT64 cr0=__readcr0();
  5. cr0 &= 0xfffffffffffeffff;
  6. __writecr0(cr0);
  7. _disable();
  8. return irql;
  9. }
  10. void WPONx64(KIRQL irql)
  11. {
  12. UINT64 cr0=__readcr0();
  13. cr0 |= 0x10000;
  14. _enable();
  15. __writecr0(cr0);
  16. KeLowerIrql(irql);
  17. }
复制代码


我想请问大牛 其中_disable(); _enable(); 这两个函数的作用是什么,我用F12跟不进去,求指点!

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2016-8-8 12:48:23 | 显示全部楼层
等效于指令cli、sti。
这种问题稍微GOOGLE一下就能知道答案。

8

主题

51

回帖

0

精华

银牌会员

积分
369
 楼主| 发表于 2016-8-8 15:49:24 | 显示全部楼层
Tesla.Angela 发表于 2016-8-8 12:48
等效于指令cli、sti。
这种问题稍微GOOGLE一下就能知道答案。

根据你的解释 我又仔细看了一下你写的代码  觉得 _disable();函数调用的时机是不是不对
我觉得应该在__writecr0(cr0);函数调用之前,不知道对不对,个人愚见。

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2016-8-8 21:38:59 | 显示全部楼层
c9080 发表于 2016-8-8 15:49
根据你的解释 我又仔细看了一下你写的代码  觉得 _disable();函数调用的时机是不是不对
我觉得应该在__w ...


1、没有啥绝对的顺序。
2、我的代码也不保证100%无错。只保证没有故意加入的错误。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表