CallNamedPipeA 関数 (winbase.h)
メッセージタイプのパイプに接続し (パイプのインスタンスが使用できない場合は待機)、パイプへの書き込みとパイプからの読み取りを行い、パイプを閉じます。
構文
BOOL CallNamedPipeA(
[in] LPCSTR lpNamedPipeName,
[in] LPVOID lpInBuffer,
[in] DWORD nInBufferSize,
[out] LPVOID lpOutBuffer,
[in] DWORD nOutBufferSize,
[out] LPDWORD lpBytesRead,
[in] DWORD nTimeOut
);
パラメーター
[in] lpNamedPipeName
パイプ名。
[in] lpInBuffer
パイプに書き込むデータ。
[in] nInBufferSize
書き込みバッファーのサイズ (バイト単位)。
[out] lpOutBuffer
パイプから読み取られたデータを受け取るバッファーへのポインター。
[in] nOutBufferSize
読み取りバッファーのサイズ (バイト単位)。
[out] lpBytesRead
パイプから読み取られたバイト数を受け取る変数へのポインター。
[in] nTimeOut
名前付きパイプが使用可能になるまで待機するミリ秒数。 数値に加えて、次の特殊な値を指定できます。
値 | 意味 |
---|---|
|
名前付きパイプを待機しません。 名前付きパイプが使用できない場合、関数はエラーを返します。 |
|
無期限に待機します。 |
|
CreateNamedPipe 関数の呼び出しで指定された既定のタイムアウトを使用します。 |
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
サーバー プロセスによってパイプに書き込まれたメッセージが nOutBufferSize より長い場合、 CallNamedPipe は FALSE を返し、 GetLastError は ERROR_MORE_DATAを返します。 CallNamedPipe は、返される前にパイプへのハンドルを閉じるので、メッセージの残りの部分は破棄されます。
注釈
CallNamedPipe の呼び出しは、CreateFile (または CreateFile でパイプをすぐに開くことができない場合は WaitNamedPipe)、TransactNamedPipe、CloseHandle 関数を呼び出すことと同じです。 CreateFile は、GENERIC_READ のアクセス フラグを使用して呼び出されます|GENERIC_WRITEし、ハンドル フラグを FALSE に継承します。
パイプがバイト型パイプの場合、CallNamedPipe は失敗します。
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 |