StarsunYzL
驱动牛犊
驱动牛犊
  • 注册日期2007-01-08
  • 最后登录2008-08-10
  • 粉丝0
  • 关注0
  • 积分250分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
阅读:1555回复:4

驱动中访问cr4的问题

楼主#
更多 发布于:2007-09-18 17:32
我要在驱动中得到cr4的值,代码如下:

ULONG regCR4;
__asm
{
    mov eax,cr4
    mov regCR4,eax
}

2003 SP1 DDK Build后却发生错误:error C2094: label 'cr4' was undefined
把cr4换成cr3又能正确编译
搜索了一下,在一个韩文的网站找到了如下解决方法:

ULONG regCR4;
__asm
{
    __emit 0x0F
    __emit 0x20
    __emit 0xE0      ;0F 20 E0是mov eax,cr4的机器码
    mov regCR4,eax
}

虽然解决了问题,但是总觉得不爽,所以问下大家是怎么访问cr4的???
时间就像乳沟一样,挤挤总会有的
StarsunYzL
驱动牛犊
驱动牛犊
  • 注册日期2007-01-08
  • 最后登录2008-08-10
  • 粉丝0
  • 关注0
  • 积分250分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-09-19 09:56
人工置顶……
时间就像乳沟一样,挤挤总会有的
qq_10652
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2008-07-04
  • 粉丝0
  • 关注0
  • 积分560分
  • 威望57点
  • 贡献值0点
  • 好评度57点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-09-19 17:33
人工置顶
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-09-20 13:03
因为编译器不支持这条指令,所以只能这么做,不爽也没辙。
StarsunYzL
驱动牛犊
驱动牛犊
  • 注册日期2007-01-08
  • 最后登录2008-08-10
  • 粉丝0
  • 关注0
  • 积分250分
  • 威望26点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-09-21 01:33
Microsoft怎么这么“弱智”哦~~有CR3没CR4……
时间就像乳沟一样,挤挤总会有的
游客

返回顶部