Регистрация CONDIS TAPI
В этом разделе описывается, как драйвер мини-порта CoNDIS WAN указывает, что он поддерживает службы TAPI, и как он настраивает обмен данными с драйверами NDISWAN и NDPROXY.
После того как драйвер минипорта CoNDIS WAN зарегистрировал точки входа драйвера минипорта для одной или нескольких сетевых адаптеров, следующие операции приводят к тому, что драйверы NDISWAN и NDPROXY становятся связанными с этими сетевыми адаптерами в соответствии с TAPI.
Драйвер мини-порта CoNDIS WAN вызывает функцию NdisMCmRegisterAddressFamilyEx из функции MiniportInitializeEx , чтобы зарегистрировать точки входа диспетчера вызовов и тип семейства адресов CO_ADDRESS_FAMILY_TAPI_PROXY. Таким образом, водитель минипорта объявляет, что он предоставляет услуги TAPI.
NDIS вызывает функцию ProtocolCoAfRegisterNotify NDPROXY, чтобы уведомить NDPROXY о недавно зарегистрированном семействе адресов. Протокол NDPROXYCoAfRegisterNotify проверяет данные семейства адресов и определяет, что он может использовать службы TAPI, предоставляемые диспетчером вызовов, интегрированным в драйвер мини-порта CoNDIS WAN. Драйвер мини-порта CoNDIS WAN с поддержкой TAPI — это интегрированный драйвер диспетчера вызовов (MCM).
NDPROXY вызывает функцию NdisClOpenAddressFamilyEx , чтобы открыть семейство адресов TAPI-proxy, связанное с драйвером мини-порта CoNDIS WAN. NdisClOpenAddressFamilyEx регистрирует точки входа NDPROXY, ориентированные на подключение, с помощью NDIS. Эти точки входа используются для взаимодействия с драйвером мини-порта CoNDIS WAN с поддержкой TAPI.
NDPROXY вызывает NdisCmRegisterAddressFamilyEx , чтобы зарегистрировать точки входа диспетчера вызовов и тип семейства адресов CO_ADDRESS_FAMILY_TAPI. Таким образом, NDPROXY объявляет, что реализует службы TAPI.
NDIS вызывает функцию ProtocolCoAfRegisterNotify NDISWAN, чтобы уведомить NDISWAN о недавно зарегистрированном семействе адресов. Протокол NDISWANCoAfRegisterNotify проверяет данные семейства адресов и определяет, что NDISWAN может использовать службы TAPI, предоставляемые NDPROXY.
NDISWAN вызывает функцию NdisClOpenAddressFamilyEx , чтобы открыть семейство адресов TAPI, связанное с NDPROXY. NdisClOpenAddressFamilyEx регистрирует точки входа NDISWAN, ориентированные на подключение, с помощью NDIS. Эти точки входа используются для взаимодействия с NDPROXY.
NDISWAN вызывает функцию NdisClRegisterSap , чтобы сообщить NDPROXY, что NDISWAN может принимать входящие вызовы в определенной точке доступа службы (SAP). В этом вызове NDISWAN передает CO_SAP структуру, описывающую SAP. NDISWAN задает для элемента SapType CO_SAP значение AF_TAPI_SAP_TYPE, чтобы указать, что SAP будет использоваться для вызовов TAPI. NDISWAN задает для элемента Sap CO_SAP строку для определенного класса устройства TAPI. Приложение TAPI предоставляет эту строку, когда приложение вызывает функцию LINEGetID TAPI. NDPROXY должен уведомлять NDISWAN обо всех входящих вызовах, адресованных SAP.