WSAAsyncGetHostByAddr マクロ関数 (wsipv6ok.h) は、アドレスに対応するホスト情報を非同期に取得する。
WSAAsyncGetHostByAddr hWnd, wMsg, addr, len, type, buf, buflen
hWnd : [intptr] wMsg : [int] addr : [str] len : [int] type : [int] buf : [str] buflen : [int]
(プラグイン / モジュール : ws2_32.dll)
WSAAsyncGetHostByAddr マクロ関数 (wsipv6ok.h) は、アドレスに対応するホスト情報を非同期に取得する。 [備考] WSAAsyncGetHostByAddr 関数は gethostbyaddr の非同期版である。ネットワークアドレスに対応するホスト名およびアドレス情報を取得するために使用される。Windows Sockets は操作を開始して直ちに呼び出し元に戻り、アプリケーションが操作を識別するのに使える不透明な非同期タスクハンドルを返す。操作が完了すると、結果 (あれば) が呼び出し元から提供されたバッファにコピーされ、アプリケーションのウィンドウにメッセージが送信される。非同期操作が完了すると、hWnd パラメータで指定されたアプリケーションウィンドウが wMsg パラメータで指定されたメッセージを受け取る。wParam パラメータには元の関数呼び出しが返した非同期タスクハンドルが格納される。lParam の上位 16 ビットにはエラーコードが格納される。エラーコードは Winsock2.h で定義された任意のエラーになりうる。エラーコードがゼロなら非同期操作が正常完了したことを示す。正常完了時には、元の関数呼び出しに指定したバッファに hostent 構造体が格納される。この構造体のメンバにアクセスするには、元のバッファアドレスを hostent 構造体ポインタにキャストして適宜アクセスする。エラーコードが WSAENOBUFS の場合、元の呼び出しで buflen に指定したバッファサイズがすべての結果情報を格納するには小さすぎたことを意味する。この場合、lParam の下位 16 ビットに必要なバッファサイズが格納される。アプリケーションが部分データでは不十分と判断した場合、すべての情報を受け取るのに十分な (すなわち lParam の下位 16 ビット以上の) バッファを用意して WSAAsyncGetHostByAddr 関数を再発行できる。この関数に指定するバッファは、Windows Sockets が hostent 構造体と、そのメンバが参照するデータ領域の内容をまとめて構築するのに使用される。WSAENOBUFS エラーを避けるため、アプリケーションは少なくとも MAXGETHOSTSTRUCT バイト (Winsock2.h で定義) のバッファを用意するべきである。エラーコードとバッファ長は、Winsock2.h で次のように定義されている WSAGETASYNCERROR および WSAGETASYNCBUFLEN マクロを使って lParam から取り出すべきである。 (以下省略)
| プラグイン / モジュール | ws2_32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の ws2_32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_ws2_32_gen2.hs |