<Return[WXYZ]><Top>

WaitNamedPipe

Declare Function Api_WaitNamedPipe& Lib "kernel32" Alias "WaitNamedPipeA" (ByVal lpNamedPipeName$, ByVal nTimeOut&)

Declare Function WaitNamedPipe Lib "kernel32" Alias "WaitNamedPipeA" (ByVal lpNamedPipeName As String, ByVal nTimeOut As Long) As Long

タイムアウト時間が経過するまで、または、指定された名前付きパイプのインスタンスが接続可能な状態になるまで(サーバー側プロセスがそのパイプに対して ConnectNamedPipe 関数を呼び出すまで)待機する。

パラメータ
lpNamedPipeName
    名前付きパイプの名前を表す、NULL で終わる文字列へのポインタを指定する。この文字列に、サーバープロセスが動作しているコンピュ

    ータの名前を含めなければならない。サーバープロセスがローカルコンピュータで動作している場合は、「servername」として 1 個のピリオド(.)

    を指定する。パイプ名の形式は、次のとおりである。
    \\servername\pipe\pipename
nTimeOut
    名前付きパイプのインスタンスが利用可能になるまでこの関数が待機する時間(タイムアウト時間)を、ミリ秒(ms)単位で指定する。ミリ秒単

    位で数値を指定する代わりに、次の値のいずれかを指定することもできる。

    値                                                    

意味                                                                                                                        

    NMPWAIT_USE_DEFAULT_WAIT

 

サーバープロセスが CreateNamedPipe 関数で指定した既定の値を、WaitNamedPipe 関数のタイムアウト値として使う。

    NMPWAIT_WAIT_FOREVER

 

指定した名前付きパイプのインスタンスが接続可能な状態になるまで、この関数は制御を返さない。

 

戻り値
    タイムアウト時間が経過する前にパイプのインスタンスが利用可能になった場合、0 以外の値が返る。
    パイプのインスタンスが利用可能にならないままタイムアウト時間が経過した場合、0 が返る。拡張エラー情報を取得するには、 関数を使

    う。

解説
    指定された名前付きパイプに対応するインスタンスが 1 つも存在しない場合、この関数はタイムアウト時間を待つことなしに、即座に制御を

    返す。
    この関数が成功した場合、プロセスは CreateFile 関数を使って名前付きパイプのハンドルを開くべきである。0 以外の値(TRUE)が返った

    場合、指定したパイプに対応するインスタンスが少なくとも 1 つ存在することを意味する。しかし、その後にそのパイプに対して CreateFile

    関数を呼び出すと、その CreateFile 関数が失敗することもある。サーバーがそのパイプのインスタンスを閉じたり、ほかのクライアントがその

    パイプのインスタンスを開いたことが原因である。