<Return[G]><Top>

GetNamedPipeHandleState

Declare Function Api_GetNamedPipeHandleState& Lib "kernel32" Alias "GetNamedPipeHandleStateA" (ByVal hNamedPipe&, lpState&, lpCurInstances&, lpMaxCollectionCount&, lpCollectDataTimeout&, ByVal lpUserName$, ByVal nMaxUserNameSize&)

Declare Function GetNamedPipeHandleState Lib "kernel32" Alias "GetNamedPipeHandleStateA" (ByVal hNamedPipe As Long, lpState As Long, lpCurInstances As Long, lpMaxCollectionCount As Long, lpCollectDataTimeout As Long, ByVal lpUserName As String, ByVal nMaxUserNameSize As Long) As Long

指定された名前付きパイプに関する情報を取得する。取得された情報は、名前付きパイプのインスタンスの存在中に変化する可能性がある。

パラメータ
hNamedPipe
    情報を取得するべき名前付きパイプのハンドルを指定する。このハンドルは、名前付きパイプに対する GENERIC_READ アクセスを持って

    いなければならない。
    Windows NT/2000:このパラメータで、CreatePipe 関数が返した名前なしパイプのハンドルを指定することもできる。
lpState
    1 個の変数へのポインタを指定する。関数から制御が返ると、この変数に、指定したハンドルの現在の状態が格納される。この情報が不

    要な場合、NULL を指定する。状態は、次の値の組み合わせになる。

    値                                             

意味                                                                                                                  

    PIPE_NOWAIT

 

このパイプハンドルは、ノンブロッキングモードに設定されている。このフラグがセットされていない場合、パイプハンドルはブロッキングモードに設定されている。

    PIPE_READMODE_MESSAGE

 

このパイプハンドルはメッセージ読み取りモードである(パイプのデータを、メッセージストリームのデータとして読み取る)。このフラグがセットされていない場合、このパイプハンドルはバイトモードである(パイプのデータを、バイトストリームのデータとして読み取る)。

lpCurInstances
    1 個の変数へのポインタを指定する。関数から制御が返ると、この変数に、指定した名前付きパイプのインスタンスの数が格納される。こ

    の情報が不要な場合、NULL を指定する。
lpMaxCollectionCount
    1 個の変数へのポインタを指定する。関数から制御が返ると、この変数に、サーバーへの送信を行う前にクライアントコンピュータに蓄積され

    るデータの最大バイト数が格納される。hNamedPipe パラメータで指定したパイプハンドルが名前付きパイプのサーバー側である場合や、ク

    ライアントプロセスとサーバープロセスが同じコンピュータ上にある場合は、NULL を指定しなければならない。この情報が不要な場合、

    NULL を指定する。
lpCollectDataTimeout
    1 個の変数へのポインタを指定する。関数から制御が返ると、この変数に、リモートの名前付きパイプがネットワーク経由で情報を転送する

    前に待機できる最大の時間が、ミリ秒(ms)単位で格納される。hNamedPipe パラメータで指定したパイプハンドルが名前付きパイプのサー

    バー側である場合や、クライアントプロセスとサーバープロセスが同じコンピュータ上にある場合は、NULL を指定しなければならない。この

    情報が不要な場合、NULL を指定する。
lpUserName
    1 個のバッファへのポインタを指定する。関数から制御が返ると、このバッファに、クライアントアプリケーションのユーザー名を表す、NULL

    で終わる文字列が格納される。クライアント側が SECURITY_IMPERSONATION アクセス権を指定してこのパイプを開いた場合に限っ

    て、サーバー側はこの情報を取得できる。
    hNamedPipe パラメータで指定したパイプハンドルが名前付きパイプのサーバー側である場合、NULL を指定しなければならない。この情

    報が不要な場合、NULL を指定する。
nMaxUserNameSize
    lpUserName パラメータが指すバッファのサイズを、TCHAR 単位で指定する。lpUserName パラメータで NULL を指定した場合、このパ

    ラメータは無視される。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、 関数を使う。

解説
    すべてのポインタで NULL を指定した場合も、この関数は、成功する。
    名前付きパイプのハンドルの状態を設定するには、SetNamedPipeHandleState 関数を使う。