Управление подсистемой подключений

В RDBSS подсистема подключения предназначена для сопоставления и эмулирования спецификаций TDI как можно ближе. Это обеспечивает эффективный механизм, который полностью использует базовую реализацию TDI для сетевых мини-редиректоров.

Хотя подключающий механизм RDBSS абстрагирует TDI, сетевые перенаправители также могут осуществлять прямое взаимодействие с TDI вместо использования этих процедур подключения подсистемы RDBSS. Существующие подпрограммы подсистемы подключения RDBSS, обеспечивающие оболочки для TDI, были разработаны для поддержки Microsoft Networks, поэтому они очень ориентированы на Windows и могут не соответствовать другим сетевым директорам. Кроме того, подпрограммы подсистемы подключений в RDBSS должны быть удалены из операционных систем Windows, выпущенных после Windows Server 2003. В будущем каждый сетевой перенаправитель будет отвечать за разработку необходимых программных модулей подключения (к TDI или другой транспортной системе). Например, перенаправитель WebDAV может взаимодействовать с некоторым процессом отражения в пользовательском режиме для отправки HTTP-пакетов (стандартный TCP/IP) вместо использования TDI.

Подпрограммы системы подключения RDBSS обрабатывают следующие сущности:

  • Транспорты

  • Адреса транспорта

  • Подключения к транспорту

  • Виртуальные каналы в соединении

Транспорты являются привязками к различным поставщикам транспортных услуг в любой системе. Адреса транспорта — это конечные точки локального подключения. Соединения — это транспортные соединения между конечными точками. Каждое подключение инкапсулирует ряд виртуальных каналов (обычно один).

Следующие важные структуры данных создаются и обрабатываются различными подпрограммами подсистемы соединений, связанными с RDBSS:

  • RXCE_TRANSPORT--инкапсулирует все параметры транспорта

  • RXCE_ADDRESS--инкапсулирует все параметры для адреса транспорта

  • RXCE_CONNECTION--инкапсулирует все параметры для подключения к транспорту

  • RXCE_VC--инкапсулирует все параметры виртуального канала в транспортном подключении.

Драйверы мини-редиректоров сети могут использовать эти структуры данных и вызывать предоставленные подпрограммы для каждого типа для сборки и демонтажа элементов подсистемы подключения. Эти подпрограммы не выделяют или освобождают память, связанную с этими структурами. Это обеспечивает гибкий механизм для драйверов мини-перенаправления для управления экземплярами этих структур данных подсистемы подключений.

Четыре типа подсистемы соединений, описанные выше, помечены в начале каждой структуры данных с специальной RXCE_SIGNATURE сигнатурой, которая широко используется RDBSS для проверки.

RDBSS предоставляет следующие подпрограммы подсистемы подключений, которые могут использоваться драйверами мини-перенаправления сети.

Рутина Описание

RxCeAllocateIrpWithMDL

Эта подпрограмма выделяет IRP для использования подсистемой соединений и связывает MDL с IRP.

Эта подпрограмма доступна только в Windows XP.

RxCeBuildAddress

Эта подпрограмма связывает адрес транспорта с привязкой транспорта.

RxCeBuildConnection

Эта подпрограмма устанавливает соединение между локальным адресом подключения RDBSS и заданным удаленным адресом. Эта подпрограмма должна вызываться в контексте рабочего потока системы.

RxCeBuildConnectionOverMultipleTransports

Эта подпрограмма устанавливает соединение между локальным адресом подключения RDBSS и заданным удаленным адресом и поддерживает несколько транспортов. Указан набор локальных адресов, и эта подпрограмма пытается подключиться к целевому серверу через все транспорты, связанные с локальными адресами. Одно подключение выбирается в качестве победителя в зависимости от параметров подключения. Эта подпрограмма должна вызываться в контексте рабочего потока системы.

RxCeBuildTransport

Эта подпрограмма привязывает транспорт RDBSS к указанному имени транспорта.

RxCeBuildVC

Эта подпрограмма добавляет виртуальный канал к указанному соединению.

RxCeCancelConnectRequest

Эта подпрограмма отменяет ранее выданный запрос на подключение.

Обратите внимание, что эта подпрограмма в настоящее время не реализована.

RxCeFreeIrp

Эта подпрограмма освобождает IRP, используемую подсистемой соединений.

Эта подпрограмма доступна только в Windows XP.

RxCeInitiateVCDisconnect

Эта подпрограмма инициирует отключение виртуального канала. Эта подпрограмма должна вызываться в контексте рабочего потока системы.

RxCeQueryAdapterStatus

Эта подпрограмма возвращает структуру ADAPTER_STATUS для данного транспорта.

RxCeQueryInformation

Эта подпрограмма запрашивает сведения, относящиеся к соединению.

RxCeQueryTransportInformation

Эта процедура возвращает информацию о количестве подключений и качестве обслуживания связи для данного транспорта.

RxCeSend

Эта подпрограмма отправляет TSDU по указанному подключению на виртуальном канале.

RxCeSendDatagram

Эта подпрограмма отправляет TSDU в указанный адрес транспорта.

RxCeTearDownAddress

Эта подпрограмма удаляет адрес транспорта из привязки транспорта.

RxCeTearDownConnection

Эта подпрограмма удаляет заданное соединение.

RxCeTearDownTransport

Эта подпрограмма отменяет привязку от указанного транспорта.

RxCeTearDownVC

Эта подпрограмма удаляет виртуальное подключение.

Примечание TDI не будет поддерживаться в версиях Microsoft Windows после Windows Vista. Вместо этого используйте Платформу фильтрации Windows или ядро Winsock.