次の方法で共有


SetIoRingCompletionEvent 関数 (ioringapi.h)

完了キュー イベントを I/O リングに登録します。

構文

HRESULT SetIoRingCompletionEvent(
  HIORING ioRing,
  HANDLE  hEvent
);

パラメーター

ioRing

完了イベントが登録されている I/O リングへのハンドルを表す HIORING

hEvent

イベント オブジェクトへのハンドル。 CreateEvent または OpenEvent 関数は、このハンドルを返します。

戻り値

次の値を含む HRESULT を返します。

説明
S_OK Success
E_INVALID_HANDLE 無効なハンドルが ioRing パラメーターに渡されました。
E_INVALIDARG 無効なハンドルが hEvent パラメーターに渡されました。

解説

カーネルは、最初のエントリを空の完了キューに配置すると、このイベントを通知します。つまり、カーネルは、完了キューが空から空でない状態に移行した場合にのみ、イベントをシグナル状態に設定します。 アプリケーションは、それ以上のエントリが示されないまで PopIoRingCompletion を呼び出し、指定された HANDLE を介して追加の非同期完了が完了するまで待機する必要があります。 それ以外の場合、イベントはシグナル状態に入らないので、タイムアウトが発生するまで待機がブロックされるか、無限タイムアウトが使用された場合は永久にブロックされる可能性があります。

カーネルは内部的にハンドルを複製するため、待機が不要になったときにアプリケーションがハンドルを閉じても問題ありません。 イベント ハンドル値として NULL を指定すると、既存の値がクリアされます。 INVALID_HANDLE_VALUEの値を設定すると、他の無効なハンドル値と同様にエラーが発生し、コードバグの早期検出に役立ちます。

HIORING に関連付けられているイベント ハンドルは最大でも 1 つあり、2 つ目のイベント ハンドルを設定しようとすると、既に存在するイベントが置き換えられます。

要件

   
サポートされている最小のクライアント Windows ビルド 22000
サポートされている最小のサーバー Windows ビルド 22000
Header ioringapi.h

関連項目

PopIoRingCompletion