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


Функция обратного вызова VIRTUALCHANNELINIT (cchannel.h)

Инициализирует доступ клиентской библиотеки DLL к виртуальным каналам служб удаленных рабочих столов. Клиент вызывает VirtualChannelInit для регистрации имен своих виртуальных каналов.

Службы удаленных рабочих столов предоставляют указатель на функцию VirtualChannelInit в структуре CHANNEL_ENTRY_POINTS , переданной точке входа VirtualChannelEntry .

Синтаксис

VIRTUALCHANNELINIT Virtualchannelinit;

UINT VCAPITYPE Virtualchannelinit(
  [in]      LPVOID *ppInitHandle,
  [in, out] PCHANNEL_DEF pChannel,
  [in]      INT channelCount,
  [in]      ULONG versionRequested,
  [in]      PCHANNEL_INIT_EVENT_FN pChannelInitEventProc
)
{...}

Параметры

[in] ppInitHandle

Указатель на переменную, получающую дескриптор, идентифицирующий подключение клиента. Используйте этот дескриптор для идентификации клиента в последующих вызовах функции VirtualChannelOpen .

[in, out] pChannel

Указатель на массив CHANNEL_DEF структур. Каждая структура содержит имя и параметры инициализации виртуального канала, который откроет клиентская библиотека DLL. Обратите внимание, что вызов VirtualChannelInit не открывает эти виртуальные каналы. он резервирует только имена для использования этим приложением.

[in] channelCount

Указывает количество записей в массиве pChannel .

[in] versionRequested

Указывает уровень поддержки виртуальных каналов. Задайте для этого параметра значение VIRTUAL_CHANNEL_VERSION_WIN2000.

[in] pChannelInitEventProc

Указатель на определяемую приложением функцию VirtualChannelInitEvent , которую службы удаленных рабочих столов вызывают для уведомления клиентской библиотеки DLL о событиях виртуального канала.

Возвращаемое значение

Если функция выполняется успешно, возвращаемое значение будет CHANNEL_RC_OK.

При возникновении ошибки функция возвращает одно из следующих значений.

Комментарии

Функцию VirtualChannelInit можно вызывать только из функции VirtualChannelEntry . Вызовы VirtualChannelInit в любое другое время завершаются ошибкой.

При успешном возврате VirtualChannelInit службы удаленных рабочих столов зарегистрировали запрошенные каналы. Однако службы удаленных рабочих столов могут не завершить другую инициализацию. После завершения инициализации службы удаленных рабочих столов вызывают функцию обратного вызова VirtualChannelInitEvent с событием CHANNEL_EVENT_INITIALIZED .

Не следует делать предположения о количестве доступных виртуальных каналов перед вызовом этой функции, так как система и другие подключаемые модули могут иметь зарезервированные виртуальные каналы. Поэтому всегда следует проверка для CHANNEL_RC_TOO_MANY_CHANNELS возвращаемого кода после вызова этой функции.

При возврате VirtualChannelInit в состав параметров каждой структуры CHANNEL_DEF включается CHANNEL_OPTION_INITIALIZED , если канал был успешно инициализирован.

Максимальное количество каналов на сеанс клиента — CHANNEL_MAX_COUNT.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header cchannel.h

См. также раздел

CHANNEL_DEF

VirtualChannelEntry

VirtualChannelInitEvent