NDIS_WAIT_FOR_MUTEX 宏 (ndis.h)

NDIS_WAIT_FOR_MUTEX宏将当前线程置于等待状态,直到指定的互斥对象设置为信号状态。

语法

void NDIS_WAIT_FOR_MUTEX(
   _M_
);

参数

_M_

指向初始化NDIS_MUTEX类型互斥对象的指针。 调用方在对 NDIS_INIT_MUTEX 宏的先前调用中初始化了互斥对象。 NDIS_MUTEX是 KMUTEX 类型的包装器。

返回值

如果操作成功完成,NDIS_WAIT_FOR_MUTEX将返回STATUS_SUCCESS。 否则,它将返回相应的 NTSTATUS 错误代码。

注解

NDIS 网络驱动程序应使用 NDIS_WAIT_FOR_MUTEX 宏等待互斥体转换为信号状态。

在引发的 IRQL 或 任意线程上下文 中,驱动程序不能等待互斥对象上的非零时间间隔, (也就是说,当调用驱动程序函数时,任何线程的上下文都是当前) 。

NDIS_WAIT_FOR_MUTEX 检查互斥对象的当前状态,以确定是否可以立即满足等待操作。 如果操作可以立即得到满足,则会对互斥对象进行必要的更新。 否则,当前线程处于等待状态,并选择要在当前处理器上执行的新线程。

此宏是 KeWaitForSingleObject 例程的 NDIS 包装器。

NDIS_WAIT_FOR_MUTEX的调用方必须在 IRQL == PASSIVE_LEVEL 且在非比特线程上下文中运行。

要求

要求
最低受支持的客户端 在 NDIS 6.0 及更高版本中受支持。
目标平台 通用
标头 ndis.h
IRQL PASSIVE_LEVEL (请参阅“备注”部分)
DDI 符合性规则 Irql_Synch_Function (ndis)

另请参阅

KeWaitForSingleObject

NDIS_INIT_MUTEX

NDIS_RELEASE_MUTEX