v0v0v
驱动牛犊
驱动牛犊
  • 注册日期2001-08-20
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望31点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1557回复:3

关于多处理器的hook interrupt(IDT)问题

楼主#
更多 发布于:2004-05-03 19:51
单处理器hook interrupt比较简单,但是多处理器怎么办呢,是不是要每个CPU都HOOK,如何同步呢?
你笑我菜,我承认,对这我没天分,可我会为你奋斗终生。
tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
沙发#
发布于:2004-05-03 23:42
KeSetThreadAffine
好像是这个名字吧

手头没有msdn

for(i = 0;i < KeNumberOfProcessor ; i ++)
{
    KeSetThreadAffine(...);
    IRQL old = KeRaiseIRQL(HIGH_LEVEL);
    // set idt
    KeLowerIRQL(old);
}

大致是这个样子的
其中的函数啊
参数啊
估计有记错了的地方
请包涵

这个会修改所有cpu的idt
或者你使用KeActiveProcessors这个也可以
具体可以参考2000的source code
嘻嘻
v0v0v
驱动牛犊
驱动牛犊
  • 注册日期2001-08-20
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分15分
  • 威望31点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-05-10 09:00
谢谢,我试试先
你笑我菜,我承认,对这我没天分,可我会为你奋斗终生。
vv6
vv6
驱动牛犊
驱动牛犊
  • 注册日期2002-03-01
  • 最后登录2011-06-17
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望12点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-05-15 22:49
我用DriverWorks编驱动也碰到这个问题,附件是Compuware网站上的技术支持,你看看是否有帮助.
附件名称/大小 下载次数 最后更新
2004-05-15_muint.chm (26KB)  23
游客

返回顶部