CreateIoRing function (ioringapi.h)

Creates a new instance of an I/O ring submission/completion queue pair and returns a handle for referencing the IORING.


HRESULT CreateIoRing(
  IORING_VERSION      ioringVersion,
  UINT32              submissionQueueSize,
  UINT32              completionQueueSize,
  HIORING             *h



A UNIT32 representing the version of the I/O ring API the ring is created for. This value must be less than or equal to the value retrieved from a call to QueryIoRingCapabilities


A value from the IORING_CREATE_FLAGS enumeration specifying creation flags.


The requested minimum submission queue size. The system may round up the size as needed to ensure the actual size is a power of 2. You can get the actual allocated queue size by calling GetIoRingInfo. You can get the maximum submission queue size on the current system by calling QueryIoRingCapabilities.


The requested minimum size of the completion queue. The system will round this size up to a power of two that is no less than two times the actual submission queue size to allow for submissions while some operations are still in progress. You can get the actual allocated queue size by calling GetIoRingInfo.


Receives the resulting HIORING handle, if creation was successful. The returned HIORING ring must be closed by calling CloseIoRing, not CloseHandle, to release the underlying resources for the IORING.

Return value

An HRESULT, including but not limited to the following:

Value Description
S_OK Success.
IORING_E_UNKNOWN_VERSION The version specified in ioringVersion is unknown.


Minimum supported client Windows Build 22000
Minimum supported server Windows Build 22000
Header ioringapi.h