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

另请参阅

KeWaitForSingleObject

StorportInitializeEvent

StorportSetEvent