memo/20070123
created 2007-01-23 modified 2007-01-23
| ログ関数 | 備考 |
|---|---|
| RegisterEventSource | |
| RegisterEventSource | |
| DeregisterEventSource |
| タイマ関数 | 備考 |
|---|---|
| CreateTimerQueue | |
| CreateTimerQueueTimer | |
| DeleteTimerQueueTimer | |
| DeleteTimerQueueEx |
| I/O関数 | 備考 |
|---|---|
| ReadFileEx | |
| WriteFileEx |
| WinSock API | 備考 |
|---|---|
| select | |
| WSAAsyncSelect | |
| WSAEvenSelect |
| .Net API | 備考 |
|---|---|
| Poll | |
| Select |
WindowsではUnixのselectに直接マップされるのはWinsockのselect系しかないみたいで、ファイルI/Oを同列に扱えるのはなさげ。
Windowsでファイルとソケットをまとめた概念で、かつシングルスレッドで読めるところから読む、書けるところから書く、というと、ReadFileExとかWriteFileExとか。
でもこれはselectとはちょっと別の概念(Unixでも非同期I/Oっていうとselectとは違う概念なのよね)。
WSAAsyncSelectは、ウィンドウアプリケーションのイベントループに対してメッセージを投げる形式。マウスやキーボードイベントとソケットイベントを同列で書ける。ウィンドウ不要の場合不適。
WSAEventSelectは、ウィンドウがないアプリでも使えそう。これは、単一のソケットに対し1つのイベントオブジェクトを結びつけるもの。で、読み書きなどのどれが可能になったかは、WSAEnumNetworkEventsを呼ぶとビットで分かるようになってる。
あー、ファイルI/Oと標準入出力は、また別っぽい。
CreateFileとかGetStdHandleとか