WaitNamedPipeW 函数 (namedpipeapi.h)

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

语法

BOOL WaitNamedPipeW(
  [in] LPCWSTR 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
标头 namedpipeapi.h
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CallNamedPipe
ConnectNamedPipe
CreateFile
CreateNamedPipe
管道函数
管道概述