Поделиться через


Функция 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
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CallNamedPipe

ConnectNamedPipe

CreateFile

CreateNamedPipe

Функции канала

Обзор каналов