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
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CloseHandle

ConnectNamedPipe

CreateNamedPipe

FlushFileBuffers

管道函数

管道概述