WaitNamedPipeA 関数 (winbase.h)
タイムアウト間隔が経過するか、指定した名前付きパイプのインスタンスが接続に使用できるようになるまで待機します (つまり、パイプのサーバー プロセスにパイプに対する保留中の ConnectNamedPipe 操作があります)。
構文
BOOL WaitNamedPipeA(
[in] LPCSTR lpNamedPipeName,
[in] DWORD nTimeOut
);
パラメーター
[in] lpNamedPipeName
名前付きパイプの名前。 文字列には、サーバー プロセスが実行されているコンピューターの名前を含める必要があります。 パイプがローカルの場合は、 サーバー名 にピリオドを使用できます。 次のパイプ名の形式が使用されます。
\\servername\pipe\pipename
[in] nTimeOut
名前付きパイプのインスタンスが使用可能になるまで関数が待機するミリ秒数。 ミリ秒を指定する代わりに、次のいずれかの値を使用できます。
値 | 意味 |
---|---|
|
タイムアウト間隔は、 CreateNamedPipe 関数のサーバー プロセスで指定された既定値です。 |
|
関数は、名前付きパイプのインスタンスが使用可能になるまで戻りません。 |
戻り値
タイムアウト間隔が経過する前にパイプのインスタンスを使用できる場合、戻り値は 0 以外になります。
タイムアウト間隔が経過する前にパイプのインスタンスを使用できない場合、戻り値は 0 になります。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
指定した名前付きパイプのインスタンスが存在しない場合、タイムアウト値に関係なく、 WaitNamedPipe 関数は直ちにを返します。
タイムアウト間隔が切れると、 WaitNamedPipe 関数はエラー ERROR_SEM_TIMEOUTで失敗します。
関数が成功した場合、プロセスでは CreateFile 関数を使用して、名前付きパイプへのハンドルを開く必要があります。 TRUE の戻り値は、使用可能なパイプのインスタンスが少なくとも 1 つあることを示します。 インスタンスがサーバーによって閉じられたか、別のクライアントによって開かれたため、パイプに対する後続の CreateFile 呼び出しが失敗する可能性があります。
Windows 10バージョン 1709: パイプは、アプリ コンテナー内でのみサポートされます。つまり、1 つの UWP プロセスから、同じアプリの一部である別の UWP プロセスまでです。 また、名前付きパイプでは、パイプ名の構文 \\.\pipe\LOCAL\
を使用する必要があります。
例
例については、「 名前付きパイプ クライアント」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |