WSAAsyncGetProtoByNumber

WSAAsyncGetProtoByNumber 関数 (winsock.h) は、プロトコル番号に対応するプロトコル情報を非同期に取得する。

WSAAsyncGetProtoByNumber hWnd, wMsg, number, buf, buflen

hWnd : [intptr] 非同期リクエストの完了時にメッセージを受け取るウィンドウのハンドル。
wMsg : [int] 非同期リクエストの完了時に受け取るメッセージ。
number : [int] 解決するプロトコル番号 (ホストバイトオーダー)。
buf : [str] protoent データを受け取るためのデータ領域へのポインタ。データ領域は、Windows Sockets が protoent 構造体とそのメンバが参照するすべてのデータを格納するために使うため、protoent 構造体のサイズより大きくなければならない。MAXGETHOSTSTRUCT バイトのバッファが推奨される。
buflen : [int] buf パラメータ用のデータ領域のサイズ (バイト単位)。

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

解説

WSAAsyncGetProtoByNumber 関数 (winsock.h)
は、プロトコル番号に対応するプロトコル情報を非同期に取得する。

[戻り値]

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

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