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

名前付きパイプが使用可能になるまで待機するミリ秒数。 数値に加えて、次の特殊な値を指定できます。

意味
NMPWAIT_NOWAIT
0x00000001
名前付きパイプを待機しません。 名前付きパイプが使用できない場合、関数はエラーを返します。
NMPWAIT_WAIT_FOREVER
0xffffffff
無期限に待機します。
NMPWAIT_USE_DEFAULT_WAIT
0x00000000
CreateNamedPipe 関数の呼び出しで指定された既定のタイムアウトを使用します。

戻り値

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

サーバー プロセスによってパイプに書き込まれたメッセージが nOutBufferSize より長い場合、 CallNamedPipeFALSE を返し、 GetLastError は ERROR_MORE_DATAを返します。 CallNamedPipe は、返される前にパイプへのハンドルを閉じるので、メッセージの残りの部分は破棄されます。

注釈

CallNamedPipe の呼び出しは、CreateFile (または CreateFile でパイプをすぐに開くことができない場合WaitNamedPipe)、TransactNamedPipeCloseHandle 関数を呼び出すことと同じです。 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

関連項目

CloseHandle

CreateFile

CreateNamedPipe

パイプ関数

パイプの概要

TransactNamedPipe

WaitNamedPipe