Windows ソケットの互換性に関する問題
Windows ソケット 2 では、擬似ブロッキングを処理する場合を除き、すべての Windows ソケット 1.1 セマンティクスと関数呼び出しが引き続きサポートされます。 Windows ソケット 2 は 32 ビットのプリエンプティブにスケジュールされた環境でのみ実行されるため、Windows ソケット 1.1 で見つかった擬似ブロッキングを実装する必要はありません。 つまり、WSAEINPROGRESS エラー コードは示されず、次の Windows ソケット 1.1 関数は Windows Sockets 2 アプリケーションでは使用できません。
- WSACancelBlockingCall
- WSAIsBlocking
- WSASetBlockingHook
- WSAUnhookBlockingHook
擬似ブロッキングを利用するように記述された Windows ソケット 1.1 プログラムは、Winsock.dllまたはWsock32.dllにリンクされるため、引き続き正しく動作します。 どちらも、Windows ソケット 1.1 関数の完全なセットを引き続きサポートします。 プログラムを Windows ソケット 2 アプリケーションにするには、いくつかのコード変更を行う必要があります。 ほとんどの場合、スレッドの慎重な使用は、ブロッキング フック関数で実行されていた処理に対応するために置き換えることができます。