次の方法で共有


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

関連項目

CloseHandle

ConnectNamedPipe

CreateNamedPipe

FlushFileBuffers

パイプ関数

パイプの概要