libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1427回复:8

为什么在系统开辟的线程里不能实现延时操作

楼主#
更多 发布于:2003-09-12 11:29
我用DS写的驱动,开辟了一个系统线程,想在系统线程里实现延时操作,在设备的头文件里定义了设备类的成员变量 KTimer   *timer; 然后在驱动的入口点,初始化函数里初始化该定时器,能成功。在系统线程里,我调用KTimer 的的成员函数Set( ),然后调用 Wait() 来完成延时操作,但就是不起作用,我把同样的代码放在驱动入口点的初始化部分来执行,能成功延时。

不知道这是为什么,难道在系统线程里不能实现延时操作??
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-15 09:19
怎么没人回答啊,很难吗?
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-09-15 17:57
等的很着急,真的没人会??
顶!!!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-09-16 08:16
早上又运行了一遍程序,还是在系统线城里不能延时,同样的语句在驱动入口点就能成功地延时。

这是为什么呢?我看了很多驱动的资料,都没说这些。

彷徨中!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-09-17 15:12
这个问题怎么没人回答啊,等的很着急啊!
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-09-18 11:27
我换一个方法,在DS里使用DDK的函数:NTSTATUS
KeDelayExecutionThread(
IN KPROCESSOR_MODE WaitMode,
IN BOOLEAN Alertable,
IN PLARGE_INTEGER Interval
);
里面的三个参数分别是选择:内核模式,FALSE,时间定义为-1500000,因为单位是0。1微秒,所以应当是延时150毫秒,但时间程序执行后看到的显示信息是有时候延时32ms,有时候延时47ms,函数返回状态成功。为什么会出现这种情况?
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-09-19 08:35
问题解决了,需要一个把时间转换成LARGE_INTER类型的函数。可惜有分放不出去了!
grant过来啊,把分给你。
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
kilroy_guo
驱动大牛
驱动大牛
  • 注册日期2002-10-29
  • 最后登录2005-11-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-09-29 15:03
还有一个keStall......啥的 :D
二姑家的猫想......
gu_nj
驱动牛犊
驱动牛犊
  • 注册日期2003-06-18
  • 最后登录2004-09-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-10-04 22:21
  我也遇到同样的问题,时间轮询的,用下楼上的方法看看。
  KeStallExecutionProcessor
呵呵,加油啊!一定能行!
游客

返回顶部