WSASendTo

可能であればオーバーラップ I/O を用いて、指定した宛先にデータを送信する。

WSASendTo s, lpBuffers, dwBufferCount, lpNumberOfBytesSent, dwFlags, lpTo, iTolen, lpOverlapped, lpCompletionRoutine

s : [int] (接続済みの場合もある) ソケットを識別する記述子。
lpBuffers : [var] WSABUF 構造体の配列へのポインタ。各 WSABUF 構造体はバッファへのポインタとそのバイト長を含む。Winsock アプリケーションでは、WSASendTo 呼び出し後はこれらバッファの所有権はシステムにあり、アプリケーションはアクセスしてはならない。この配列は送信操作の間有効でなければならない。
dwBufferCount : [int] lpBuffers 配列内の WSABUF 構造体の数。
lpNumberOfBytesSent : [var] I/O 操作が即時完了した場合にこの呼び出しで送信したバイト数へのポインタ。lpOverlapped が NULL でない場合、誤った結果を避けるために本引数を NULL にする。本引数を NULL にできるのは lpOverlapped が NULL でない場合のみ。
dwFlags : [int] WSASendTo の動作を変更するためのフラグ。
lpTo : [var] SOCKADDR 構造体で表される送信先ソケットのアドレスへのオプションのポインタ。
iTolen : [int] lpTo 引数のアドレスのサイズ (バイト単位)。
lpOverlapped : [var] WSAOVERLAPPED 構造体へのポインタ (非オーバーラップソケットでは無視される)。
lpCompletionRoutine : [int] 型: \_In_opt\_ [**LPWSAOVERLAPPED_COMPLETION_ROUTINE**](./nc-winsock2-lpwsaoverlapped_completion_routine.md) 送信操作が完了した時に呼び出される完了ルーチンへのポインタ (非オーバーラップソケットでは無視される)。

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

解説

可能であればオーバーラップ I/O を用いて、指定した宛先にデータを送信する。

[戻り値]
エラーがなく送信操作が即時完了した場合、WSASendTo
はゼロを返す。この場合、呼び出し元スレッドがアラート可能状態になった時点で完了ルーチンが呼び出されるようスケジュール済みとなる。そうでない場合は
SOCKET_ERROR が返され、WSAGetLastError で特定のエラーコードを取得できる。WSA_IO_PENDING
エラーコードはオーバーラップ操作が正常に開始され、完了が後で通知されることを示す。それ以外のエラーコードはオーバーラップ操作が正常に開始されず、完了通知は発生しないことを示す。
このドキュメントは省略されている。

[備考]
WSASendTo 関数は、標準の sendto 関数に対して次の 2 つの重要な領域で機能を追加する。
このドキュメントは省略されている。

情報

プラグイン / モジュール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