Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
阅读:1926回复:2

应用层sleep函数,在驱动里面相应的是什么?我用NdisMSleep不好用嘛。

楼主#
更多 发布于:2007-03-28 14:55
  我用NdisMSleep吧,必须包含ndis.h头文件,但是这个头文件一包括吧,和ntifs.h放在一起,编译的时候,无数的错误发生。所以,我估计是不能用ndis.h这个头文件的,而存在另一个sleep函数给我用。我 一时也没有找到,就上来问问吧。
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
ldljlzw
驱动中牛
驱动中牛
  • 注册日期2002-03-16
  • 最后登录2014-01-02
  • 粉丝1
  • 关注0
  • 积分1021分
  • 威望372点
  • 贡献值0点
  • 好评度187点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-28 15:13
有DKK中根本就没有象sleep的函数.但很容易自己实现.
象NdisSleep就是ndis自己实现的,源码如下:

/*++

    Routine Description:

    Blocks the caller for specified duration of time. Callable at Irql < DISPATCH_LEVEL.

    Arguments:

    MicrosecondsToSleep - The caller will be blocked for this much time.

    Return Value:

    NONE

--*/
VOID NdisMSleep(IN    ULONG    MicrosecondsToSleep)
{
    LARGE_INTEGER    TimerValue;
    KTIMER        SleepTimer;
    ASSERT (KeGetCurrentIrql() == LOW_LEVEL);
    KeInitializeTimerEx(&SleepTimer, SynchronizationTimer);
    TimerValue.QuadPart = Int32x32To64(MicrosecondsToSleep, -10);
    KeSetTimer(&SleepTimer, TimerValue, NULL);
    KeWaitForSingleObject(&SleepTimer,Executive,KernelMode,TRUE, NULL);
}
Pegram
论坛版主
论坛版主
  • 注册日期2005-12-03
  • 最后登录2013-08-23
  • 粉丝13
  • 关注5
  • 积分1333分
  • 威望4717点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分2分
板凳#
发布于:2007-03-28 19:26
谢谢
《寒江独钓》与《竹林蹊径》的合作作者。精通USB开发,设计了CY001 USB驱动套件(http://bbs.driverdevelop.com/read.php?tid-119314.html)。
游客

返回顶部