SetIoRingCompletionEvent 函式 (ioringapi.h)
向 I/O 通道註冊完成佇列事件。
語法
HRESULT SetIoRingCompletionEvent(
HIORING ioRing,
HANDLE hEvent
);
參數
ioRing
HIORING,代表註冊完成事件之 I/O 通道的控制碼。
hEvent
事件物件的控制碼。 CreateEvent或OpenEvent函式會傳回這個控制碼。
傳回值
傳回 HRESULT,包括下列值:
值 | 描述 |
---|---|
S_OK | Success |
E_INVALID_HANDLE | ioRing參數中傳遞了不正確控制碼。 |
E_INVALIDARG | hEvent參數中傳遞了不正確控制碼。 |
備註
當核心將第一個專案放入空的完成佇列時,核心會發出訊號,也就是說,當完成佇列從空白轉換為非空白狀態時,核心只會將事件設定為已發出訊號的狀態。 應用程式應該呼叫 PopIoRingCompletion ,直到它指出沒有更多專案,然後等候任何其他非同步完成,透過提供的 HANDLE 完成。 否則,事件不會進入已發出訊號的狀態,而且等候可能會封鎖直到發生逾時為止,或者如果使用無限逾時,則永遠會封鎖。
核心會在內部複製控制碼,因此當不再需要等候時,應用程式可以放心地關閉控制碼。 提供 Null 的事件控制碼值只會清除任何現有的值。 設定 INVALID_HANDLE_VALUE 的值會引發錯誤,就像任何其他不正確控制碼值一樣,以協助提早偵測程式碼錯誤。
最多有一個與 HIORING 相關聯的事件控制碼,嘗試設定第二個事件控制碼將會取代任何已經存在的事件控制碼。
需求
最低支援的用戶端 | Windows 組建 22000 |
最低支援的伺服器 | Windows 組建 22000 |
標頭 | ioringapi.h |