StorPortWaitForSingleObject 函数 (storport.h)
微型端口可以调用 StorPortWaitForSingleObject 函数,将当前线程置于等待状态,直到给定调度程序对象设置为信号状态或选择性超时。
语法
ULONG StorPortWaitForSingleObject(
PVOID HwDeviceExtension,
PVOID Object,
BOOLEAN Alertable,
PLARGE_INTEGER Timeout
);
参数
HwDeviceExtension
指向存储微型端口的设备扩展的指针。
Object
指向已初始化的调度程序对象的指针, (事件、互斥体、信号灯、线程或计时器) 。
Alertable
如果等待可发出警报,则将布尔值设置为 TRUE,否则设置为 FALSE。
Timeout
指向超时值的指针,该值指定完成等待的绝对时间或相对时间(以 100 纳秒为单位)。
正值指定相对于 1601 年 1 月 1 日绝对时间。 负值指定相对于当前时间的间隔。 绝对过期时间跟踪系统时间中的任何更改;相对过期时间不受系统时间更改的影响。
如果 Timeout = 0,则例程返回而不等待。 如果微型端口提供 NULL 指针,则例程将无限期等待,直到调度程序对象设置为信号状态。 有关更多信息,请参见下面的“备注”部分。
返回值
StorPortSetEvent 返回如下状态代码之一:
返回代码 | 说明 |
---|---|
STOR_STATUS_INVALID_PARAMETER | 一个或多个参数无效。 |
STOR_STATUS_SUCCESS | 已成功记录 ETW 事件。 |
STOR_STATUS_UNSUCCESSFUL | 此操作失败。 |
注解
有关更多详细信息 ,请参阅 KeWaitForSingleObject 。
StorportWaitForSingleObject 的调用方必须在 IRQL <= DISPATCH_LEVEL 运行。 但是,如果 Timeout = NULL 或 Timeout != 0,则调用方必须在 IRQL <= APC_LEVEL 且在非比特线程上下文中运行。 (如果 Timeout != NULL 且 Timeout = 0,则调用方必须在 IRQL <= DISPATCH_LEVEL.)
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 2004 |
标头 | storport.h |