waitNamedPipeA 函数 (winbase.h)
等待到超时间隔过去或指定命名管道的实例可用于连接 (即管道的服务器进程对管道) 具有挂起的 ConnectNamedPipe 操作。
语法
BOOL WaitNamedPipeA(
[in] LPCSTR lpNamedPipeName,
[in] DWORD nTimeOut
);
参数
[in] lpNamedPipeName
命名管道的名称。 字符串必须包含执行服务器进程的计算机的名称。 如果管道是本地的,则 服务器名称 可以使用句点。 使用以下管道名称格式:
\\servername\pipe\pipename
[in] nTimeOut
函数等待命名管道实例可用的毫秒数。 可以使用以下值之一,而不是指定毫秒数。
值 | 含义 |
---|---|
|
超时间隔是服务器进程在 CreateNamedPipe 函数中指定的默认值。 |
|
在命名管道的实例可用之前,函数不会返回 。 |
返回值
如果在超时间隔之前管道实例可用,则返回值为非零值。
如果在超时间隔之前管道实例不可用,则返回值为零。 要获得更多的错误信息,请调用 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 |