yunyanrong
驱动小牛
驱动小牛
  • 注册日期2003-04-18
  • 最后登录2013-03-02
  • 粉丝0
  • 关注0
  • 积分1040分
  • 威望457点
  • 贡献值1点
  • 好评度90点
  • 原创分0分
  • 专家分0分
阅读:1598回复:6

在中断中如何启动定时器?

楼主#
更多 发布于:2007-05-21 23:19
最近正在根据LINUX某代码修改为WINDOWS版本,看到LINUX的中断可以直接启动定时器,但WINDOWS不行。

是不是要来个IoAllocateWorkItem啊?那么在这个workitem的函数是运行在甚么IRQL级别的?

多谢。
qiweixue
驱动小牛
驱动小牛
  • 注册日期2004-07-21
  • 最后登录2011-12-19
  • 粉丝0
  • 关注0
  • 积分1006分
  • 威望274点
  • 贡献值0点
  • 好评度268点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-05-22 16:58
不清楚,顶一下。
yunyanrong
驱动小牛
驱动小牛
  • 注册日期2003-04-18
  • 最后登录2013-03-02
  • 粉丝0
  • 关注0
  • 积分1040分
  • 威望457点
  • 贡献值1点
  • 好评度90点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-05-28 16:19
顶的好,多谢,继续等待。
ciomhan
驱动牛犊
驱动牛犊
  • 注册日期2004-04-26
  • 最后登录2010-07-27
  • 粉丝0
  • 关注0
  • 积分244分
  • 威望75点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-05-28 17:22
没错,必须用WORKITEM来实现,因为不能在DISPATCH LEVEL上启动定时器.WorkItem是PASSIVE级别的,执行的优先级很低.
bimingda
驱动牛犊
驱动牛犊
  • 注册日期2006-04-26
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分540分
  • 威望55点
  • 贡献值0点
  • 好评度54点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-05-28 23:53
workitem为系统辅助线程服务。
yunyanrong
驱动小牛
驱动小牛
  • 注册日期2003-04-18
  • 最后登录2013-03-02
  • 粉丝0
  • 关注0
  • 积分1040分
  • 威望457点
  • 贡献值1点
  • 好评度90点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-05-30 17:27
引用第3楼ciomhan于2007-05-28 17:22发表的  :
没错,必须用WORKITEM来实现,因为不能在DISPATCH LEVEL上启动定时器.WorkItem是PASSIVE级别的,执行的优先级很低.


多谢!一不小心猜中了。

定时器的DPC函数也是DISPATCH LEVEL的。
yunyanrong
驱动小牛
驱动小牛
  • 注册日期2003-04-18
  • 最后登录2013-03-02
  • 粉丝0
  • 关注0
  • 积分1040分
  • 威望457点
  • 贡献值1点
  • 好评度90点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-06-11 23:11
引用第3楼ciomhan于2007-05-28 17:22发表的  :
没错,必须用WORKITEM来实现,因为不能在DISPATCH LEVEL上启动定时器.WorkItem是PASSIVE级别的,执行的优先级很低.


查了下,WORKITEM的启动也是在<=DISPATCH LEVEL的,和KeSetTimer一样。

点解?不能KeSetTimer,却能IoXxxxxxWorkItem?
游客

返回顶部