SetIoRingCompletionEvent 函数 (ioringapi.h)

向 I/O 通道注册完成队列事件。

Syntax

HRESULT SetIoRingCompletionEvent(
  HIORING ioRing,
  HANDLE  hEvent
);

参数

ioRing

一个 HIORING ,表示注册完成事件的 I/O 环的句柄。

hEvent

事件对象的句柄。 CreateEventOpenEvent 函数返回此句柄。

返回值

返回 HRESULT,包括以下值:

价值 Description
S_OK 成功
E_INVALID_HANDLE ioRing 参数中传递了无效句柄。
E_INVALIDARG hEvent 参数中传递了无效句柄。

注解

当内核将第一个条目置于空完成队列中时,内核将发出信号,即当完成队列从空切换到非空状态时,内核只会将事件设置为信号状态。 应用程序应调用 PopIoRingCompletion ,直到它指示没有更多条目,然后等待任何其他异步完成通过提供的 HANDLE 完成。 否则,事件不会进入信号状态,等待可能会阻止,直到出现超时,或者永远使用无限超时。

内核会在内部复制句柄,因此当不再需要等待时,应用程序可以安全地关闭句柄。 提供 NULL 的事件句柄值只是清除任何现有值。 设置INVALID_HANDLE_VALUE值会引发错误,就像任何其他无效句柄值一样,以帮助尽早检测代码 bug。

最多有一个与 HIORING 关联的事件句柄,尝试设置第二个事件句柄将替换已存在的任何事件句柄。

要求

Requirement 价值
最低支持的客户端 Windows 内部版本 22000
支持的最低服务器 Windows 内部版本 22000
Header ioringapi.h
Library kernel32。自由

另请参阅

PopIoRingCompletion