KeReadStateEvent 函数 (wdm.h)

KeReadStateEvent 例程返回事件对象的当前状态(已发出信号或未发出信号)。

语法

LONG KeReadStateEvent(
  [in] PRKEVENT Event
);

参数

[in] Event

指向调用方为其提供存储的已初始化事件对象的指针。

返回值

如果事件对象当前设置为信号状态,则返回非零值。 否则,返回零。

言论

此例程提供了一种有效的方式来轮询事件的信号状态。 KeReadStateEvent 读取事件的状态,而无需同步其对事件的访问。 不要假定通过 KeReadStateEvent 访问事件状态是例程相互排斥的访问,例如 KeSetEventKeWaitForSingleObject,它们会同步其访问事件状态。

如果满足以下条件,则还可以从 DIRQL 的驱动程序中断服务例程读取事件的状态:驱动程序的事件对象是驻留的(可能位于其设备扩展中),访问该事件的任何其他函数都会将其访问与 ISR 同步。

有关事件对象的详细信息,请参阅 事件对象

要求

要求 价值
最低支持的客户端 从 Windows 2000 开始可用。
目标平台 普遍
标头 wdm.h (include Ntddk.h)
NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
DDI 符合性规则 HwStorPortProhibitedDIs(storport)IrqlKeDispatchLte(wdm)

另请参阅

KeClearEvent

KeInitializeEvent

KeResetEvent

KeSetEvent

KeWaitForSingleObject