ConnectNamedPipe 関数 (namedpipeapi.h)
名前付きパイプ サーバー プロセスが、クライアント プロセスが名前付きパイプのインスタンスに接続するのを待機できるようにします。 クライアント プロセスは、
構文
BOOL ConnectNamedPipe(
[in] HANDLE hNamedPipe,
[in, out, optional] LPOVERLAPPED lpOverlapped
);
パラメーター
[in] hNamedPipe
名前付きパイプ インスタンスのサーバー側へのハンドル。 このハンドルは、CreateNamedPipe 関数によって返されます。
[in, out, optional] lpOverlapped
OVERLAPPED 構造体へのポインター。
hNamedPipe
hNamedPipe
hNamedPipe
戻り値
操作が同期の場合、ConnectNamedPipe は操作が完了するまで戻りません。 関数が成功した場合、戻り値は 0 以外です。 関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError
操作が非同期の場合、ConnectNamedPipe
クライアントが関数を呼び出す前に接続すると、関数は 0 を返し、GetLastError
備考
名前付きパイプ サーバー プロセスでは、新しく作成されたパイプ インスタンス ConnectNamedPipe を使用できます。 また、以前に別のクライアント プロセスに接続されていたインスタンスと共に使用することもできます。この場合、サーバー プロセスは、ハンドルを新しいクライアントに再接続する前に、最初に DisconnectNamedPipe 関数を呼び出して、前のクライアントからハンドルを切断する必要があります。 それ以外の場合、ConnectNamedPipe は 0 を返し、GetLastError は、前のクライアントがハンドルを閉じた場合はERROR_NO_DATA、ハンドルを閉じていない場合はERROR_PIPE_CONNECTEDを返します。
ConnectNamedPipe の動作は、パイプ ハンドルの待機モードがブロックモードに設定されているか非ブロッキングに設定されているか、関数が同期的に実行されるように設定されているか、重複モードで実行されるように設定されているかという 2 つの条件によって異なります。 サーバーは最初に、CreateNamedPipe 関数でパイプ ハンドルの待機モードを指定します。SetNamedPipeHandleState 関数を使用して変更できます。
サーバー プロセスは、
指定したパイプ ハンドルが非ブロッキング モードの場合、ConnectNamedPipe は常に直ちに返されます。 非ブロッキング モードでは、ConnectNamedPipe
例
例については、「マルチスレッド パイプ サーバー
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリ |UWP アプリ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリ |UWP アプリ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | namedpipeapi.h |
ライブラリ | Kernel32.lib |
DLL | Kernel32.dll |
関連項目
CallNamedPipe の
CreateEvent の
CreateFile の
CreateNamedPipe の
DisconnectNamedPipe の
GetOverlappedResult の
重複する を
パイプ関数 を
SetNamedPipeHandleState の
SleepEx を