NdisMSleep 函数 (ndis.h)

NdisMSleep 函数将调用方的执行延迟到给定的时间间隔(以微秒为单位)。

语法

void NdisMSleep(
  [in] ULONG MicrosecondsToSleep
);

参数

[in] MicrosecondsToSleep

要延迟的微秒数。

返回值

备注

MicrosecondsToSleep 参数中的给定时间内,调用方的执行线程将置于等待状态,从而允许其他线程在当前处理器上完成工作。 当给定的间隔过期时, NdisMSleep 的调用方将继续执行。

除非驱动程序以 IRQL >= DISPATCH_LEVEL 运行,否则 NDIS 驱动程序应始终调用 NdisMSleep 而不是 NdisStallExecution 函数。 NdisMSleep 可以接受比 NdisStallExecution 更大的延迟间隔, 绝不应以 大于 50 微秒的间隔调用。 请勿在超时超过 30,000,000 微秒 (调用 NdisMSleep ,即) 30 秒或半分钟。

微型端口驱动程序可以从其 MiniportInitializeEx 调用 NdisMSleep,并且可能调用 MiniportHaltEx 函数,其中任一函数必须等待 NIC 中发生状态更改,然后该函数才能继续其操作。

NdisMSleepNdisStallExecution 都允许微型端口驱动程序一致地指定延迟,并且独立于主机 CPU 的时钟速度。 这两个函数都不涉及计时器对象,例如 NdisSetTimerObject 函数使用的计时器对象。 主机系统时钟的分辨率各不相同,因此非常短的延迟时间可能略长于 NdisMSleepNdisStallExecution 的调用方指定的延迟时间。

要求

要求
最低受支持的客户端 NDIS 6.0 和 NDIS 5.1 驱动程序支持 (请参阅 Windows Vista 中的 NdisMSleep (NDIS 5.1) ) 。 NDIS 5.1 驱动程序支持 (请参阅 NdisMSleep (NDIS 5.1) ) 。
目标平台 通用
标头 ndis.h (包括 Ndis.h)
Library Ndis.lib
IRQL < DISPATCH_LEVEL
DDI 符合性规则 Irql_Miniport_Driver_Function (ndis)

另请参阅

MiniportHaltEx

MiniportInitializeEx

NdisSetTimerObject

NdisStallExecution

NdisWaitEvent

NetTimerCallback