Share via


DisconnectNamedPipe 函式 (namedpipeapi.h)

中斷命名管道實例的伺服器端與客戶端進程的連接。

語法

BOOL DisconnectNamedPipe(
  [in] HANDLE hNamedPipe
);

參數

[in] hNamedPipe

具名管道實例的句柄。 這個句柄必須由 CreateNamedPipe 函式建立。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果命名管道的用戶端已開啟, DisconnectNamedPipe 函式會強制關閉命名管道的結尾。 用戶端下次嘗試存取管道時收到錯誤。 由 DisconnectNamedPipe 強制關閉管道的用戶端,仍然必須使用 CloseHandle 函式來關閉其管道的結尾。

只要伺服器或客戶端進程有管道的開啟句柄,管道就會存在。

當伺服器進程中斷管道實例的連接時,會捨棄管道中任何未讀取的數據。 在中斷連線之前,伺服器可以呼叫 FlushFileBuffers 函式來確保數據不會遺失,在客戶端進程讀取所有數據之前不會傳回。

伺服器進程必須呼叫 DisconnectNamedPipe ,才能使用 ConnectNamedPipe 函式將管道句柄與先前的用戶端中斷連線,才能連接另一個用戶端。

Windows 10 版本 1709:管道僅支援於應用程式容器內;亦即,從一個 UWP 進程到屬於相同應用程式的另一個 UWP 進程。 此外,命名管道必須使用管道名稱的語法 \\.\pipe\LOCAL\

範例

如需範例,請參閱 多線程管道伺服器

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 namedpipeapi.h
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CloseHandle

ConnectNamedPipe

CreateNamedPipe (CreateNamedPipe 函式)

FlushFileBuffers

管道函式

管道概觀