zsh_7769
驱动小牛
驱动小牛
  • 注册日期2004-04-15
  • 最后登录2005-12-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1918回复:10

有关两个函数的使用

楼主#
更多 发布于:2004-07-31 20:55
想用KeQueryPerformanceCounter和KeQuerySystemTime这两个函数来控制延时,但就是看不懂该怎么用,人笨真的是没办法.有没有人用过帮忙讲一下吧,这就先谢过了!


snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-08-01 08:28
这两个函数能控制延时吗?你好实现什么样的延时,这两个是获取系统时间的
KeQueryPerformanceCounter provides the finest grained running count available in the system.

LARGE_INTEGER
  KeQueryPerformanceCounter(
    OUT PLARGE_INTEGER  PerformanceFrequency  OPTIONAL
    );

KeQuerySystemTime obtains the current system time.

VOID
  KeQuerySystemTime(
    OUT PLARGE_INTEGER  CurrentTime
    );

学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
zsh_7769
驱动小牛
驱动小牛
  • 注册日期2004-04-15
  • 最后登录2005-12-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-08-01 10:35
我希望驱动程序能够循环中查询外部状态和时间,条件满足则执行,希望在两次查询间隔运行一个延时函数,查询状态的时间能比较精确的控制.有一个网友建议用这两个函数进行精确控制,你觉得呢?谢谢!
RED_spring
驱动中牛
驱动中牛
  • 注册日期2002-07-28
  • 最后登录2016-11-06
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望19点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-08-01 16:13
在DDK的SRC目录里搜“KeQueryPerformanceCounter”和“KeQuerySystemTime”。例子一大堆。 :D
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2004-08-02 08:56
RDTSC
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-08-02 15:18

void Delay(ULONG xMs)
{
LARGE_INTEGER llStart ;
LARGE_INTEGER llEnd ;
LARGE_INTEGER llFreq ;

KeQueryPerformanceCounter(&llFreq ) ;
llFreq.QuadPart = llFreq.QuadPart*xMs/1000 ;
KeQuerySystemTime(&llStart) ;
do
KeQuerySystemTime(&llEnd) ;
while((llEnd.QuadPart-llStart.QuadPart)<llFreq.QuadPart) ;
}

上次哪个随手写的,没有测试,不好意思给添麻烦了。




________________________________________________________

回答的好请给分

1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
zsh_7769
驱动小牛
驱动小牛
  • 注册日期2004-04-15
  • 最后登录2005-12-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-08-04 21:08
多谢AllenZh的大力帮助!非常感谢!
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-08-06 12:42
不用太客气了
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
8楼#
发布于:2004-08-06 13:49
不用太客气了

什么时候也帮我下,为什么我在MIRROR获得图象的图标其他的都可以,就是灰色的变成了黑色,要用鼠标在上面扫一下才显示出来??
会是哪里的问题???
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
zsh_7769
驱动小牛
驱动小牛
  • 注册日期2004-04-15
  • 最后登录2005-12-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-08-10 15:46
AllenZh你好!真不好意思!又要麻烦你了,不怕你笑话,笨到极点的我到现在还是不太清楚如何用那两个函数精确控制时间,现在主要存在下面的问题:
1)KeQueryPerformanceCounter(&llFreq ) 这个函数的参数控制的是每个'ticks'所占用的时间,返回的是'ticks'的个数,但调用这个函数时返回的'ticks'的个数是多少呢?
2)llFreq.QuadPart = llFreq.QuadPart*xMs/1000这行代码有什么用处?
3)KeQuerySystemTime()这个函数的参数跟系统时间有什么关系?如何利用参数控制时间?
真不好意思!给你添麻烦了!非常感谢!
cicada
驱动小牛
驱动小牛
  • 注册日期2003-12-09
  • 最后登录2008-07-11
  • 粉丝1
  • 关注0
  • 积分74分
  • 威望15点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-10-28 20:37
是啊,给你添麻烦了!非常感谢!
游客

返回顶部