WSAAsyncGetServByName

WSAAsyncGetServByName 関数 (winsock.h) は、サービス名とポートに対応するサービス情報を非同期に取得する。

WSAAsyncGetServByName hWnd, wMsg, name, proto, buf, buflen

hWnd : [intptr] 非同期リクエストの完了時にメッセージを受け取るウィンドウのハンドル。
wMsg : [int] 非同期リクエストの完了時に受け取るメッセージ。
name : [str] NULL 終端のサービス名へのポインタ。
proto : [str] プロトコル名へのポインタ。NULL にすることもでき、その場合 WSAAsyncGetServByName は s_name または s_aliases のいずれかが指定した name と一致する最初のサービスエントリを検索する。それ以外の場合、WSAAsyncGetServByName は name と proto の両方に一致するものを探す。
buf : [str] servent データを受け取るためのデータ領域へのポインタ。データ領域は、Windows Sockets が servent 構造体とそのメンバが参照するすべてのデータを格納するために使うため、servent 構造体のサイズより大きくなければならない。MAXGETHOSTSTRUCT バイトのバッファが推奨される。
buflen : [int] buf パラメータ用のデータ領域のサイズ (バイト単位)。

(プラグイン / モジュール : ws2_32.dll)

解説

WSAAsyncGetServByName 関数 (winsock.h) は、サービス名とポートに対応するサービス情報を非同期に取得する。

[戻り値]

戻り値は、非同期操作の開始に成功したかどうかを示す。操作自体の成否を意味するものではない。エラーがない場合、WSAAsyncGetServByName
はそのリクエストに対する非同期タスクハンドルを表す、HANDLE 型の 0
以外の値を返す。非同期操作を開始できなかった場合、WSAAsyncServByName はゼロを返し、WSAGetLastError
を呼び出すことで特定のエラー番号を取得できる。アプリケーションウィンドウがメッセージを受け取ったとき、次のエラーコードが設定されうる。前述の通り、これらは
WSAGETASYNCERROR マクロを使って返信メッセージの lParam から取り出せる。
(以下省略)

[備考]
WSAAsyncGetServByName 関数は getservbyname
の非同期版であり、サービス名に対応するサービス情報を取得するために使用される。Windows Sockets
は操作を開始して直ちに呼び出し元に戻り、アプリケーションが操作を識別するのに使える不透明な非同期タスクハンドルを返す。操作が完了すると、結果
(あれば)
が呼び出し元から提供されたバッファにコピーされ、アプリケーションのウィンドウにメッセージが送信される。非同期操作が完了すると、hWnd
パラメータで指定されたアプリケーションウィンドウが wMsg パラメータで指定されたメッセージを受け取る。wParam
パラメータには元の関数呼び出しが返した非同期タスクハンドルが格納される。lParam の上位 16
ビットにはエラーコードが格納される。エラーコードは Winsock2.h
で定義された任意のエラーになりうる。エラーコードがゼロなら非同期操作が正常完了したことを示す。正常完了時には、元の関数呼び出しに指定したバッファに
servent 構造体が格納される。エラーコードが WSAENOBUFS の場合、元の呼び出しで buflen
に指定したバッファサイズがすべての結果情報を格納するには小さすぎたことを意味する。この場合、lParam の下位 16
ビットに必要なバッファサイズが格納される。WSAENOBUFS エラーを避けるため、アプリケーションは少なくとも
MAXGETHOSTSTRUCT バイトのバッファを用意するべきである。エラーコードとバッファ長は、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