waitNamedPipeA 函数 (winbase.h)

等待到超时间隔过去或指定命名管道的实例可用于连接 (即管道的服务器进程对管道) 具有挂起的 ConnectNamedPipe 操作。

语法

BOOL WaitNamedPipeA(
  [in] LPCSTR lpNamedPipeName,
  [in] DWORD  nTimeOut
);

参数

[in] lpNamedPipeName

命名管道的名称。 字符串必须包含执行服务器进程的计算机的名称。 如果管道是本地的,则 服务器名称 可以使用句点。 使用以下管道名称格式:

\\servername\pipe\pipename

[in] nTimeOut

函数等待命名管道实例可用的毫秒数。 可以使用以下值之一,而不是指定毫秒数。

含义
NMPWAIT_USE_DEFAULT_WAIT
0x00000000
超时间隔是服务器进程在 CreateNamedPipe 函数中指定的默认值。
NMPWAIT_WAIT_FOREVER
0xffffffff
在命名管道的实例可用之前,函数不会返回 。

返回值

如果在超时间隔之前管道实例可用,则返回值为非零值。

如果在超时间隔之前管道实例不可用,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

如果不存在指定命名管道的实例,则无论超时值如何, WaitNamedPipe 函数都会立即返回。

如果超时间隔过期, WaitNamedPipe 函数将失败, 并ERROR_SEM_TIMEOUT错误。

如果函数成功,则进程应使用 CreateFile 函数打开命名管道的句柄。 返回值 TRUE 指示至少有一个管道实例可用。 后续对管道的 CreateFile 调用可能会失败,因为实例已被服务器关闭或由另一个客户端打开。

Windows 10版本 1709:管道仅在应用容器中受支持;即,从一个 UWP 进程到另一个属于同一应用的 UWP 进程。 此外,命名管道必须使用语法 \\.\pipe\LOCAL\ 来表示管道名称。

示例

有关示例,请参阅 命名管道客户端

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CallNamedPipe

ConnectNamedPipe

CreateFile

CreateNamedPipe

管道函数

管道概述