KeDelayExecutionThread问题

zengping1 2013-02-19 10:00:32
WIN7下编写了一HID驱动,在EvtIoInternalDeviceControl派遣函数中通过PsCreateSystemThread创建了一系统线程,此线程负责每10ms处理一下数据,但通过KeDelayExecutionThread进行延时处理时,KeDelayExecutionThread延时的时间偶尔是正确的10ms,偶尔却一直是15ms,求达人解释为什么会出现此现象,如何解决此问题?谢谢.
KeQuerySystemTime(&start);
timeOut.QuadPart = TIME_OUT;(TIME_OUT为(-10*10000))
status = KeDelayExecutionThread(KernelMode,FALSE,&timeOut);
KeQuerySystemTime(&end);
KdPrint(("Need Time = %d\n",(end.QuadPart - start.QuadPart)/10000));
打印出来的Need Time偶尔一直是10ms,偶尔一直是15ms.
...全文
443 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
一个傻冒 2013-02-19
  • 打赏
  • 举报
回复
线程调度之类的吧。精度应该没这么高。
yong_f 2013-02-19
  • 打赏
  • 举报
回复
多线程的正常事吧,设置超时后,如果其他线程也需要响应就会出现抢占CPU的时候。如果此时此线程没抢到CPU的话就延后了

1,317

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧