WSAAsyncGetHostByAddr

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
URLhttps://github.com/inovia/IronHSP
備考Win32 API の ws2_32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_ws2_32_gen2.hs