Overlapped I/O
FILE_FLAG_OVERLAPPEDを付けて開いたハンドルに対し、操作ごとのOVERLAPPED構造体を渡して行うWin32の非同期I/Oの具体的な実装形態。モードはハンドル単位でCreateFileの時点に決まる。
- 概念URI
https://comcomponent.com/knowledge/overlapped-io/
- 別名・表記
- オーバーラップドI/O / 非同期I/O(Win32)
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- Overlapped I/Oは非同期I/Oの実装を担います。Overlapped I/Oは、FILE_FLAG_OVERLAPPEDとOVERLAPPED構造体という具体的なAPIの形で非同期I/Oを実装したもの / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- Overlapped I/OはCreateFileで構成できます。非同期モードはCreateFileにFILE_FLAG_OVERLAPPEDを渡すことでハンドル単位に決まり、呼び出しごとには切り替えられない / 確度: 確立した関係 / 確認日: 2026-08-01 出典 出典
- Overlapped I/OはOVERLAPPED構造体を利用します。発行中の操作1つを識別し、その状態(位置・完了・転送バイト数)を運ぶためにOVERLAPPED構造体を使う / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- ERROR_IO_PENDINGはOverlapped I/Oを前提とします。ERROR_IO_PENDINGは非同期モード(Overlapped I/O)のハンドルへの発行に特有の戻り値である / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- CancelIoExはOverlapped I/Oに対する本記事の推奨です。非同期I/Oの取り消しには、どのスレッドが発行したかに関係なく使えるCancelIoExを使う / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- CancelIoをOverlapped I/Oに用いることは推奨されません。CancelIoは呼び出したスレッド自身が発行した操作しか取り消せない制約があり、CancelIoExが使える環境であえて選ぶ理由はない / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- FileOptions.AsynchronousはOverlapped I/Oの実装を担います。.NETのFileOptions.Asynchronous(useAsync)はFILE_FLAG_OVERLAPPEDへの直通スイッチで、指定するとハンドルが非同期モードで開かれる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- Overlapped I/OはI/O完了ポート(IOCP)を利用します。多数の同時I/Oを少数のスレッドで受ける完了通知の経路として、ハンドルをI/O完了ポートに関連付けることができる / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- Windowsスレッドプールの I/O APIはOverlapped I/Oに対する本記事の推奨です。新規のサーバーアプリケーションが非同期I/Oを扱うなら、生のIOCPよりまずWindowsスレッドプールAPIを検討すべきというのがドキュメントの立場 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。