Регистрация в диспетчере таблиц маршрутизации
Прежде чем клиент сможет получить доступ к таблице маршрутизации, он сначала должен зарегистрироваться в диспетчере таблиц маршрутизации с помощью функции RtmRegisterEntity .
Когда клиент регистрируется, он передает диспетчеру таблиц маршрутизации RTM_ENTITY_INFO структуру. Эта структура содержит сведения, однозначно определяющие клиента, семейство адресов и экземпляр диспетчера таблиц маршрутизации, с помощью которого регистрируется клиент. Клиент также может установить обратный вызов RTM_EVENT_CALLBACK . Диспетчер таблиц маршрутизации будет использовать этот обратный вызов для уведомления клиента о таких событиях, как уведомления об изменениях и регистрациях клиентов.
Диспетчер таблиц маршрутизации завершает обработку регистрации и возвращает дескриптор клиенту. Клиент должен использовать этот дескриптор для всех последующих вызовов функций RTMv2.
Функция RtmRegisterEntity , используемая в RTMv2, аналогична функции RtmRegisterClient , которая используется в RTMv1. Функция RtmRegisterClient устарела, за исключением клиентов, использующих IPX.
Завершив взаимодействие клиента с диспетчером таблиц маршрутизации, он должен вызвать RtmDeregisterEntity. Диспетчер таблиц маршрутизации уничтожает дескриптор, связанный с клиентом. Чтобы избежать утечки памяти, клиент должен убедиться, что он освобождает все дескриптора и удаляет все маршруты и следующие прыжки, которыми он владеет, прежде чем вызывать RtmDeregisterEntity.
Пример кода, демонстрирующий использование этих функций, см. в разделах Регистрация в диспетчере таблиц маршрутизации и Использование обратного вызова уведомления о событиях.