NdisMSleep 函数 (ndis.h)
NdisMSleep 函数延迟调用方以微秒为单位的给定间隔的执行。
语法
void NdisMSleep(
[in] ULONG MicrosecondsToSleep
);
参数
[in] MicrosecondsToSleep
要延迟的微秒数。
返回值
没有
言论
对于 MicrosecondsToSleep 参数中的给定时间,调用方的执行线程处于等待状态,从而允许其他线程在当前处理器上完成工作。 给定的间隔到期时,NdisMSleep 调用方将恢复执行。
除非驱动程序在 IRQL >= DISPATCH_LEVEL,否则 NDIS 驱动程序应始终调用 NdisMSleep,而不是 NdisStallExecution 函数。 NdisMSleep 可以接受比 NdisStallExecution更大的延迟间隔,绝不,间隔大于 50 微秒。 不要调用 NdisMSleep 超时超过 30,000,000 微秒(即 30 秒或半分钟)。
微型端口驱动程序可以从其 MiniportInitializeEx 调用 NdisMSleep,并且当任一函数必须等待状态更改在 NIC 中继续其作之前,MiniportHaltEx 函数。
NdisMSleep 和 NdisStallExecution 都允许微型端口驱动程序指定一致且独立于主机 CPU 的时钟速度的延迟。 这两个函数都不涉及计时器对象,例如由 NdisSetTimerObject 函数使用的计时器对象。 主机系统时钟的分辨率各不相同,因此非常短的延迟时间可能略长于 NdisMSleep 调用方或 NdisStallExecution 指定的延迟时间。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista 中支持 NDIS 6.0 和 NDIS 5.1 驱动程序(请参阅 NdisMSleep (NDIS 5.1)。 支持 NDIS 5.1 驱动程序(请参阅 NdisMSleep (NDIS 5.1) 。 |
目标平台 | 普遍 |
标头 | ndis.h (包括 Ndis.h) |
库 | Ndis.lib |
IRQL | < DISPATCH_LEVEL |
DDI 符合性规则 | Irql_Miniport_Driver_Function(ndis) |