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


Функция 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
Header namedpipeapi.h
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CloseHandle

ConnectNamedPipe

CreateNamedPipe

FlushFileBuffers

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

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