Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Чтобы транспортный протокол был доступен через сокеты Windows, он должен быть правильно установлен в системе и зарегистрирован в сокетах Windows. При установке поставщика услуг транспорта путем вызова программы установки поставщика необходимо добавить сведения о конфигурации в базу данных конфигурации, чтобы предоставить Ws2_32.dll необходимые сведения о поставщике услуг. Ws2_32.dll экспортирует несколько функций установки, WSCInstallProvider и WSCInstallProviderAndChains, чтобы программа установки поставщика предоставляла соответствующие сведения о поставщике услуг. Эти сведения включают, например, имя и путь к библиотеке DLL поставщика услуг и списку WSAPROTOCOL_INFO структур, которые может поддерживать этот поставщик. Ws2_32.dll также предоставляет функцию, WSCDeinstallProvider, чтобы программа деинсталляции поставщика удалила все соответствующие сведения из базы данных конфигурации, поддерживаемой Ws2_32.dll. Точное расположение и формат этой информации конфигурации является частным для Ws2_32.dllи может управляться только указанными выше функциями.
На 64-разрядных платформах существуют аналогичные функции, работающие в 32-разрядных и 64-разрядных каталогах. Эти функции включают WSCInstallProvider64_32, WSCInstallProviderAndChains64_32и WSCDeinstallProvider32.
Порядок первоначального установки поставщиков услуг транспорта определяет порядок перечисления WSCEnumProtocols и WSCEnumProtocols32 в интерфейсе поставщика услуг или через WSAEnumProtocols в интерфейсе приложения. Более важно, что этот порядок также определяет порядок, в котором протоколы и поставщики услуг рассматриваются при запросе клиента на создание сокета на основе его семейства адресов, типа и идентификатора протокола. Сокеты Windows 2 включают applet с именем Sporder.exe, что позволяет каталогу установленных протоколов переупорядочение в интерактивном режиме после установки протоколов. Сокеты Windows 2 также включают вспомогательные библиотеки DLL, Sporder.dll, которые экспортируют процедурный интерфейс для переупорядочения протоколов. Этот процедурный интерфейс состоит из одной процедуры, называемой WSCWriteProviderOrder.
Установка многоуровневых протоколов и цепочек протоколов
Структура WSAPROTOCOL_INFO, предоставляемая каждым протоколом, который необходимо установить, указывает, является ли протокол базовым, многоуровневый протокол или цепочка протоколов. Значение параметра ProtocolChain.ChainLen интерпретируется, как показано в следующей таблице.
| Ценность | Значение |
|---|---|
| 0 | Многоуровневый протокол. |
| 1 | Базовый протокол (или цепочка только с одним компонентом). |
| >1 | Цепочка протоколов. |
Установка цепочек протоколов может происходить только после успешной установки всех компонентов (базовых протоколов и многоуровневых протоколов). Структура WSAPROTOCOL_INFO для цепочки протоколов использует параметр ProtocolChain для описания длины цепочки и удостоверения каждого компонента. Отдельные протоколы, составляющие цепочку, перечислены в порядке в массиве ProtocolChain.ChainEntries с нулевым элементом массива, соответствующим первому многоуровневым поставщику. Протоколы определяются их значениями CatalogEntryID, назначенными Ws2_32.dll во время установки протокола, и можно найти в структуре WSAPROTOCOL_INFO для каждого протокола.
Значения оставшихся параметров в WSAPROTOCOL_INFO структуре цепочки протоколов должны быть выбраны для отражения атрибутов и идентификаторов, которые лучше всего характеризуют цепочку протоколов в целом. При выборе этих значений разработчикам следует помнить, что обмен данными по цепочкам протоколов может происходить только в том случае, если обе конечные точки имеют совместимые цепи протоколов, и что приложения должны иметь возможность распознавать соответствующую WSAPROTOCOL_INFO структуру.
При установке базового протокола не требуется вносить записи в массив ProtocolChain.ChainEntries. Неявно понятно, что единственный компонент этой цепочки уже определен в параметре CatalogEntryID той же структуры WSAPROTOCOL_INFO. Кроме того, обратите внимание, что цепочки протоколов могут не включать несколько экземпляров одного многоуровневого протокола.