mywdrivers
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2004-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1556回复:6

关于KeWaitForSingleObject 的问题??

楼主#
更多 发布于:2003-06-17 20:56
我想在我驱动程序中是使用KeWaitForSingleObject 这个函数来等待数据,但是我希望使用一个超时,但是
KeWaitForSingleObject 不可以等待一个 非零值 在 IRQL = DISPATCH_LEVEL 时,是否除了延事,我就没有别的办法了。
请指教
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-18 12:05
优化你程序的流程,当Timeout为NULL时 KeWaitForSingleObject 可以在 IRQL <= DISPATCH_LEVEL 等待。
你的认可是对我最大的鼓励!
mywdrivers
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2004-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-18 19:58
问题是:我就是想超时,等待一会儿,不行就退呀,不需要一直等待下去的,有什么好的办法呢?
mywdrivers
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2004-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-18 20:08
顺便问一下,如何类似WIN32那样,使用GetTickCount来获得当前的时间值,DDK中类似的函数叫什么?
KeDelayExecutionThread 这个函数只能在passive_level 运行,如果我想延时的话,我需要调用哪个函数?
liuyang714
驱动牛犊
驱动牛犊
  • 注册日期2003-06-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-18 20:28
KeQueryTickCount, KeQuerySystemTime 之类的得到系统当前时间。

如果你一定要在 DISPACH_LEVEL 要等待超时的话,可以用 Timer 对象设定一个小的 dueTime,然后设一个循环啊。如果 < DISPACH_LEVEL 的话,那就有很多同步机制可以用了,Timer,Event 之类的。

LONG timeOut = 0;
while (timeOut < TIMEOUT_VALUE)
{
    WaitForSingleObject(...)
}

其实我也是菜鸟了,不过刚开始也在考虑和你一样的问题。 :D :D
liuyang714
驱动牛犊
驱动牛犊
  • 注册日期2003-06-04
  • 最后登录2003-08-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-18 20:29
KeQueryTickCount, KeQuerySystemTime 之类的得到系统当前时间。

如果你一定要在 DISPACH_LEVEL 要等待超时的话,可以用 Timer 对象设定一个小的 dueTime,然后设一个循环啊。如果 < DISPACH_LEVEL 的话,那就有很多同步机制可以用了,Timer,Event 之类的。

LONG timeOut = 0;
while (timeOut < TIMEOUT_VALUE)
{
    WaitForSingleObject(...);
    timeOut += 500;
}

其实我也是菜鸟了,不过刚开始也在考虑和你一样的问题。 :D :D
mywdrivers
驱动牛犊
驱动牛犊
  • 注册日期2002-12-04
  • 最后登录2004-09-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-18 20:38
Thank you very much.
游客

返回顶部