Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переключатель сокетов Windows всегда использует форматы адресов WSK, которые содержат IP-адреса, при взаимодействии с поставщиками услуг SAN и сетевыми интерфейсными картами SAN. Переключатель не использует собственное семейство адресов SAN. Поэтому поставщик услуг SAN должен использовать связанный драйвер прокси-сервера для получения списка IP-адресов, назначенных сетевым адаптерам. Поставщик служб SAN использует эти IP-адреса при взаимодействии с его прокси-драйвером. Драйвер прокси-сервера должен переводить между IP-адресами и локальными адресами.
Во время инициализации прокси-драйвер обычно регистрируется в интерфейсе драйвера транспорта (TDI) для уведомлений об изменении адресов. Все транспорты, поддерживающие Plug and Play (PnP), такие как TCP/IP, предоставляют уведомления об изменении адресов через TDI клиентам, зарегистрированным на получение этих уведомлений.
Примечание TDI не будет поддерживаться в версиях Microsoft Windows после Windows Vista. Вместо этого используйте Платформу фильтрации Windows или ядро Winsock.
Регистрация для уведомления об изменении адреса
Во время инициализации драйвер прокси-сервера вызывает функцию TdiRegisterPnPHandlers для регистрации уведомлений об изменении адресов. В этом вызове прокси-драйвер передает указатели на функции обратного вызова для добавления и удаления адресов в членах AddAddressHandlerV2 и DelAddressHandlerV2 структуры TDI_CLIENT_INTERFACE_INFO. После регистрации прокси-драйвера для получения этих уведомлений TDI сразу же обозначает все активные сетевые адреса с помощью обратного вызова добавления адреса.
TDI передает следующие параметры в callback-функции добавления адреса или удаления адреса драйвера прокси-сервера:
адрес
Указатель на структуру TA_ADDRESS, описывающую сетевой адрес, назначенный сетевой карте или удаленный с нее. В случае TCP/IP этот указатель фактически является указателем на структуру TA_ADDRESS_IP.
DeviceName
Указатель на строку Юникода, которая определяет привязку транспорта к сетевому адаптеру, с которой связан адрес. В случае TCP/IP строка Юникода имеет следующий формат:
\Device\Tcpip_{NIC-GUID}
где NIC-GUID — глобальный уникальный идентификатор, назначенный подсистемой конфигурации сети сетевому адаптеру.
Предыдущие определения структуры определены в файле заголовка tdi.h. Предыдущие функции регистрации и обратного вызова определены в файле заголовка tdikrnl.h. Эти файлы заголовков доступны в пакете средств разработки драйверов Microsoft Windows (DDK) и комплекте драйверов Windows (WDK). Подробные сведения о уведомлениях TDI PnP включены в обратные вызовы клиента TDI и обработчики событий клиента TDI и уведомлений PnP.
Примечание TDI не будет поддерживаться в версиях Microsoft Windows после Windows Vista. Вместо этого используйте платформу фильтрации Windows или ядро Winsock.
Обслуживание списка IP-адресов
Прокси-драйвер поставщика услуг SAN использует уведомления о добавлении и удалении адресов для поддержания списка IP-адресов, назначенных каждому сетевому адаптеру под его контролем. Драйвер прокси-сервера использует этот список для перевода между одним или несколькими IP-адресами, назначенными сетевой адаптеру SAN транспортом TCP/IP и собственными SAN-адресами. Прекси-драйвер также должен предоставить рутинную подпрограмму управления устройством, которая делает список IP-адресов, назначенных сетевому адаптеру, доступным для коммутатора сокетов Windows каждый раз, когда коммутатор выполняет запрос на код управления SIO_ADDRESS_LIST_QUERY. Подпрограмма драйвера прокси-сервера DriverEntry должна указывать точку входа для этой подпрограммы управления устройствами.
Коммутатор сокетов Windows поддерживает список всех IP-адресов, назначенных каждому сетевому адаптеру SAN. Чтобы получить IP-адреса для этого инклюзивного списка, коммутатор вызывает каждую функцию поставщика услуг SAN WSPIoctl, передав код управления SIO_ADDRESS_LIST_QUERY. Каждый поставщик услуг SAN, в свою очередь, запрашивает связанный драйвер прокси-сервера для отдельного списка IP-адресов, назначенных сетевым адаптерам SAN. После уведомления об изменении адреса коммутатор снова запрашивает каждого поставщика услуг SAN для обновлений в каждом отдельном списке.