DisconnectNamedPipe 関数 (namedpipeapi.h)
名前付きパイプ インスタンスのサーバー側をクライアント プロセスから切断します。
構文
BOOL DisconnectNamedPipe(
[in] HANDLE hNamedPipe
);
パラメーター
[in] hNamedPipe
名前付きパイプのインスタンスへのハンドル。 このハンドルは、 CreateNamedPipe 関数によって作成する必要があります。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
名前付きパイプのクライアント側が開いている場合、 DisconnectNamedPipe 関数は、名前付きパイプの末尾を強制的に閉じます。 クライアントは、次回パイプにアクセスしようとしたときにエラーを受け取ります。 DisconnectNamedPipe によってパイプから強制的に切断されるクライアントは、CloseHandle 関数を使用してパイプの末尾を閉じる必要があります。
サーバーまたはクライアント プロセスがパイプに対して開いているハンドルを持っている限り、パイプは存在します。
サーバー プロセスがパイプ インスタンスを切断すると、パイプ内の未読データはすべて破棄されます。 切断する前に、サーバーは FlushFileBuffers 関数を呼び出すことによってデータが失われることを確認できます。これは、クライアント プロセスがすべてのデータを読み取るまでは返されません。
ConnectNamedPipe 関数を使用してハンドルを別のクライアントに接続するには、サーバー プロセスで DisconnectNamedPipe を呼び出して、前のクライアントからパイプ ハンドルを切断する必要があります。
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 |