開発者が登録済みの名前空間に対して I/O 制御呼び出しを行えるようにする。
WSANSPIoctl hLookup, dwControlCode, lpvInBuffer, cbInBuffer, lpvOutBuffer, cbOutBuffer, lpcbBytesReturned, lpCompletion
hLookup : [intptr] WSALookupServiceBegin への直前の呼び出しで返された検索ハンドル。 dwControlCode : [int] 実行する操作の制御コード。 lpvInBuffer : [intptr] 入力バッファへのポインタ。 cbInBuffer : [int] 入力バッファのサイズ (バイト単位)。 lpvOutBuffer : [intptr] 出力バッファへのポインタ。 cbOutBuffer : [int] 出力バッファのサイズ (バイト単位)。 lpcbBytesReturned : [var] 返されたバイト数へのポインタ。 lpCompletion : [var] 非同期処理に使う WSACOMPLETION 構造体へのポインタ。ブロッキング (同期) 実行を強制するには lpCompletion を NULL にする。
(プラグイン / モジュール : ws2_32.dll)
開発者が登録済みの名前空間に対して I/O 制御呼び出しを行えるようにする。 [戻り値] 成功時は NO_ERROR を返す。失敗時は SOCKET_ERROR を返し、WSAGetLastError で特定のエラーコードを取得できる。エラーコードは次表に示す。 このドキュメントは省略されている。 [備考] WSANSPIoctl 関数は、ネームスペースプロバイダへのクエリハンドルに関連する動作パラメータの設定や取得に用いる。hLookup 引数は WSALookupServiceBegin で事前に返されたネームスペースプロバイダのクエリハンドルであり、ソケットハンドルではない。ネームスペースプロバイダに送られる IOCTL は、その実装によっては無期限にブロックする可能性がある。ブロッキングに耐えられないアプリケーションは、オーバーラップ I/O を使い lpCompletion に WSACOMPLETION 構造体を指定すべきである。WSANSPIoctl 呼び出しを非ブロッキングで直ちに返させるには、WSACOMPLETION の Type メンバを NSP_NOTIFY_IMMEDIATELY に設定する。lpCompletion が NULL の場合、WSANSPIoctl はブロッキング呼び出しとして実行される。ネームスペースプロバイダは即座に返りブロックすべきではないが、各プロバイダがこの振る舞いを守る責任を負う。次の IOCTL コードはいくつかの Microsoft ネームスペースプロバイダでサポートされている: SIO_NSP_NOTIFY_CHANGE。この操作は、hLookup を使った先行呼び出しで返された結果がまだ有効かを確認する。先行呼び出しには、hLookup を取得した最初の WSALookupServiceBegin 呼び出しや、hLookup を使う後続の WSALookupServiceNext 呼び出しが含まれる。 このドキュメントは省略されている。
| プラグイン / モジュール | 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 |