PeekNamedPipe 関数 (namedpipeapi.h)
名前付きパイプまたは匿名パイプからデータをパイプから削除せずにバッファーにコピーします。 また、パイプ内のデータに関する情報も返します。
構文
BOOL PeekNamedPipe(
[in] HANDLE hNamedPipe,
[out, optional] LPVOID lpBuffer,
[in] DWORD nBufferSize,
[out, optional] LPDWORD lpBytesRead,
[out, optional] LPDWORD lpTotalBytesAvail,
[out, optional] LPDWORD lpBytesLeftThisMessage
);
パラメーター
[in] hNamedPipe
パイプへのハンドル。 このパラメーターには、 CreateNamedPipe 関数または CreateFile 関数によって返される名前付きパイプ インスタンスへのハンドルを指定できます。また、 CreatePipe 関数によって返される匿名パイプの読み取り側へのハンドルを指定することもできます。 ハンドルはパイプにGENERIC_READアクセスできる必要があります。
[out, optional] lpBuffer
パイプから読み取られたデータを受信するバッファーへのポインター。 データを読み取る必要がない場合、このパラメーターは NULL にすることができます。
[in] nBufferSize
lpBuffer パラメーターで指定されたバッファーのサイズ (バイト単位)。 lpBuffer が NULL の場合、このパラメーターは無視されます。
[out, optional] lpBytesRead
パイプから読み取られたバイト数を受け取る変数へのポインター。 データを読み取る必要がない場合、このパラメーターは NULL にすることができます。
[out, optional] lpTotalBytesAvail
パイプから読み取ることができる合計バイト数を受け取る変数へのポインター。 データを読み取る必要がない場合、このパラメーターは NULL にすることができます。
[out, optional] lpBytesLeftThisMessage
このメッセージに残っているバイト数を受け取る変数へのポインター。 このパラメーターは、バイト型の名前付きパイプの場合は 0、匿名パイプの場合は 0 になります。 データを読み取る必要がない場合、このパラメーターは NULL にすることができます。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
PeekNamedPipe 関数は ReadFile 関数に似ていますが、次の例外があります。
- データは、 CreateNamedPipe で指定されたモードで読み取られます。 たとえば、PIPE_TYPE_MESSAGE | を使用してパイプを作成します。PIPE_READMODE_MESSAGE。 モードを SetNamedPipeHandleState でPIPE_READMODE_BYTEに変更すると、ReadFile はバイト モードで読み取られますが、PeekNamedPipe は引き続きメッセージ モードで読み取られます。
- パイプから読み取られたデータは、パイプのバッファーから削除されません。
- 関数は、パイプの内容に関する追加情報を返すことができます。
- パイプにデータがない場合でも、この関数は常にシングルスレッド アプリケーションで直ちにを返します。 名前付きパイプ ハンドルの待機モード (ブロックまたは非ブロック) は、関数には影響しません。
Windows 10バージョン 1709: パイプは、アプリ コンテナー内でのみサポートされます。つまり、1 つの UWP プロセスから、同じアプリの一部である別の UWP プロセスまでです。 また、名前付きパイプでは、パイプ名の構文 \\.\pipe\LOCAL\
を使用する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | namedpipeapi.h |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |