WSANSPIoctl

開発者が登録済みの名前空間に対して 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
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