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


Регистрация в диспетчере таблиц маршрутизации

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

При регистрации клиента структура RTM_ENTITY_INFO передается диспетчеру таблиц маршрутизации. Эта структура содержит сведения, которые однозначно идентифицируют клиента, семейство адресов и экземпляр диспетчера таблиц маршрутизации, с помощью которого регистрируется клиент. Клиент также может установить обратный вызов RTM_EVENT_CALLBACK. Диспетчер таблиц маршрутизации будет использовать этот обратный вызов для уведомления клиента о событиях, таких как уведомления об изменениях и регистрации клиентов.

Диспетчер таблиц маршрутизации завершает обработку регистрации и возвращает дескриптор клиенту. Клиент должен использовать этот дескриптор для всех последующих вызовов функций RTMv2.

Функция RtmRegisterEntity, используемая в RTMv2, аналогична функции RtmRegisterClient, используемой в RTMv1. Функция RtmRegisterClient устарела, за исключением клиентов, использующих IPX.

После завершения взаимодействия клиента с диспетчером таблиц маршрутизации необходимо вызвать RtmDeregisterEntity. Менеджер таблиц маршрутизации удаляет дескриптор, связанный с клиентом. Чтобы избежать утечки памяти, клиент должен убедиться, что он освобождает все дескрипторы и удаляет все маршруты и следующие узлы, которыми он владеет, перед вызовом RtmDeregisterEntity.

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