flat7th

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とか