GetNamedPipeHandleStateW

GetNamedPipeHandleStateW (Unicode) 関数 (winbase.h) は、指定した名前付きパイプに関する情報を取得する。

GetNamedPipeHandleStateW hNamedPipe, lpState, lpCurInstances, lpMaxCollectionCount, lpCollectDataTimeout, lpUserName, nMaxUserNameSize

hNamedPipe : [intptr] 情報を取得したい名前付きパイプへのハンドル。読み取り専用または読み書き両用パイプの場合、ハンドルは GENERIC_READ アクセス権を持つ必要があり、書き込み専用パイプの場合は GENERIC_WRITE と FILE_READ_ATTRIBUTES アクセス権を持つ必要がある。本パラメータは CreatePipe 関数が返した匿名パイプへのハンドルでもよい。
lpState : [var] 
lpCurInstances : [var] 現在のパイプインスタンス数を受け取る変数へのポインタ。この情報が不要な場合、本パラメータは NULL にできる。
lpMaxCollectionCount : [var] クライアントのコンピュータ上でサーバーへの送信前に収集される最大バイト数を受け取る変数へのポインタ。指定したパイプハンドルが名前付きパイプのサーバー側、またはクライアントとサーバープロセスが同じコンピュータ上にある場合、本パラメータは NULL でなければならない。この情報が不要な場合、本パラメータは NULL にできる。
lpCollectDataTimeout : [var] リモート名前付きパイプがネットワーク経由で情報を転送するまでに経過し得る最大時間(ミリ秒単位)を受け取る変数へのポインタ。指定したパイプハンドルが名前付きパイプのサーバー側、またはクライアントとサーバープロセスが同じコンピュータ上にある場合、本パラメータは NULL でなければならない。この情報が不要な場合、本パラメータは NULL にできる。
lpUserName : [wstr] クライアントアプリケーションに関連付けられたユーザー名文字列を受け取るバッファへのポインタ。クライアントが SECURITY_IMPERSONATION アクセス権でパイプを開いた場合のみ、サーバーはこの情報を取得できる。指定したパイプハンドルが名前付きパイプのクライアント側の場合、本パラメータは NULL でなければならない。この情報が不要な場合、本パラメータは NULL にできる。
nMaxUserNameSize : [int] lpUserName パラメータで指定したバッファのサイズ(TCHAR 単位)。lpUserName が NULL の場合、本パラメータは無視される。

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

解説

GetNamedPipeHandleStateW (Unicode) 関数 (winbase.h)
は、指定した名前付きパイプに関する情報を取得する。

[戻り値]
関数が成功した場合の戻り値は 0 以外である。失敗した場合の戻り値は 0 である。拡張エラー情報を取得するには GetLastError
を呼ぶ。

[備考]
GetNamedPipeHandleState 関数は、渡されたすべてのポインタが NULL
であっても正常に返る。パイプハンドルの状態を設定するには SetNamedPipeHandleState 関数を使用する。Windows
10 バージョン 1709: パイプは app-container 内でのみサポートされる。すなわち、同じアプリの一部である UWP
プロセス間でのみ使用可能である。また、名前付きパイプはパイプ名に `\\.\pipe\LOCAL\` 構文を使用しなければならない。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs