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) |