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


Функция RtmRegisterClient

[Этот API был заменен API диспетчера таблиц маршрутизации версии 2 и не будет доступен за пределами Windows Server 2003. Приложения должны использовать API диспетчера таблиц маршрутизации версии 2.]

Функция RtmRegisterClient регистрирует клиент в качестве обработчика указанного протокола. Он устанавливает механизм уведомления об изменении маршрута для клиента и задает параметры протокола.

Синтаксис

HANDLE RtmRegisterClient(
  _In_ DWORD  ProtocolFamily,
  _In_ DWORD  RoutingProtocol,
  _In_ HANDLE ChangeEvent,
  _In_ DWORD  Flags
);

Параметры

ProtocolFamily [in]

Указывает семейство протоколов протокола маршрутизации для регистрации.

RoutingProtocol [in]

Указывает идентификатор протокола маршрутизации, который используется при регистрации в диспетчере маршрутизатора. См. раздел RegisterProtocol.

ChangeEvent [in]

Указывает, что изменился оптимальный маршрут к сети в таблице. Диспетчер таблиц маршрутизации сообщает об этом событии после изменения оптимального маршрута к любой сети в таблице. Дополнительные сведения об уведомлении об изменении маршрута см. в статье RtmDequeueRouteChangeMessage .

Этот параметр является необязательным. Если вызывающий объект задает для этого параметра значение NULL , диспетчер таблиц маршрутизации не уведомляет клиента об изменениях в наилучшем состоянии маршрута.

Флаги [in]

Задает прочие параметры для специальной обработки протокола маршрутизации. В настоящее время поддерживается следующее значение.

Флаги Значение
RTM_PROTOCOL_SINGLE_ROUTE
Диспетчер таблиц маршрутизации хранит только один маршрут для каждой конечной сети для протокола маршрутизации. Другими словами, диспетчер таблиц маршрутизации заменяет записи маршрутов с теми же номерами сети назначения, а не добавляет новые.

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

При успешном возвращении значение HANDLE , которое идентифицирует клиента в последующих вызовах диспетчера таблиц маршрутизации.

Дескриптор NULL указывает, что диспетчеру таблиц маршрутизации не удалось зарегистрировать клиент. Вызовите Метод GetLastError , чтобы узнать причину сбоя.

Значение Описание
ERROR_CLIENT_ALREADY_EXISTS
Другой клиент уже зарегистрирован для обработки указанного протокола.
ERROR_INVALID_PARAMETER
Указанное семейство протоколов не поддерживается или параметр Flags недопустим.
ERROR_NO_SYSTEM_RESOURCES
Недостаточно ресурсов для выполнения операции.
ERROR_NOT_ENOUGH_MEMORY
Недостаточно памяти для выделения структур данных для клиента.

Требования

Требование Значение
Минимальная версия клиента
Ни одна версия не поддерживается
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Прекращение поддержки сервера
Windows Server 2003
Заголовок
Rtm.h
Библиотека
Rtm.lib
DLL
Rtm.dll

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

Справочник по диспетчеру таблиц маршрутизации версии 1

Функции диспетчера таблиц маршрутизации версии 1

Getlasterror

RegisterProtocol

Идентификаторы семейства протоколов RTMv1

RtmDequeueRouteChangeMessage

RtmDeregisterClient