Поделиться через


Инициализация CoNDIS TAPI

В этом разделе описывается, как драйвер мини-порта CoNDIS WAN перечисляет свои возможности TAPI для приложений. Эти возможности TAPI включают следующее:

  • Число линейных устройств, поддерживаемых драйвером мини-порта, включая, например, модем, доску факса и карта ISDN.

  • Сведения о конкретных строках, включая, например, идентификатор строки и количество адресов каналов (телефонных номеров), поддерживаемых линией для одновременной передачи голосовых и данных.

  • Сведения об адресах конкретных каналов в строках устройств. Сведения об адресах включают, например, удостоверение вызывающего абонента (идентификатор вызывающего абонента) и количество активных вызовов.

Чтобы получить сведения о базовом оборудовании, NDPROXY выдает запросы на возможности адресов линий и каналов. То есть драйвер NDPROXY запрашивает возможности TAPI драйвера мини-порта CoNDIS WAN. Драйвер NDPROXY вызывает функцию NdisCoOidRequest для запроса возможностей TAPI драйвера мини-порта. В этом вызове NDPROXY передает структуру NDIS_OID_REQUEST. В NDIS_OID_REQUEST NDPROXY указывается следующее:

  • Значение NdisRequestQueryInformation в элементе RequestType

  • Идентификатор объекта (OID), указывающий возможность TAPI для извлечения из драйвера miniport в элементе Oid .

  • Буфер для хранения сведений о возможностях TAPI, возвращаемых в элементе InformationBuffer

Все запросы, отправленные драйверу мини-порта CoNDIS WAN драйвером NDPROXY, могут выполняться синхронно или асинхронно. Если драйвер мини-порта CoNDIS WAN определяет, что он не может выполнить запрос немедленно, он может просто вернуть NDIS_STATUS_PENDING и вызвать функцию NdisMCmOidRequestComplete из функции ProtocolCoOidRequest после завершения запроса.

После того как драйвер минипорта CoNDIS WAN уведомит NDPROXY о регистрации нового семейства адресов, как указано в регистрации CoNDIS TAPI, NDPROXY запрашивает следующие идентификаторы OID, чтобы определить возможности, характерные для TAPI драйвера мини-порта CoNDIS WAN и сетевой карты драйвера мини-порта.

  • NDPROXY запрашивает драйвер мини-порта с OID_CO_TAPI_CM_CAPS , чтобы определить количество линий, поддерживаемых устройством водителя минипорта (устройством, для которого он предоставляет службы TAPI). Этот OID также запрашивает драйвер минипорта, чтобы указать, имеют ли эти линии разнородные возможности линий.

  • Далее NDPROXY запрашивает драйвер мини-порта с OID_CO_TAPI_LINE_CAPS , чтобы определить возможности телефонии для указанной линии. Этот OID также запрашивает драйвер мини-порта, чтобы указать, имеют ли адреса в этой строке разнородные возможности адресов.

    • Если предыдущий запрос OID_CO_TAPI_CM_CAPS указывает, что устройство драйвера мини-порта поддерживает только одну строку или устройство поддерживает несколько строк с одинаковыми возможностями линии, NDPROXY должен запросить OID_CO_TAPI_LINE_CAPS только один раз, чтобы получить возможности линии устройства. В этом случае возможности линий, возвращаемые драйвером мини-порта, применяются ко всем строкам на устройстве.
    • Если устройство поддерживает несколько строк с различными возможностями линий, NDPROXY должен запросить OID_CO_TAPI_LINE_CAPS один раз для каждой строки, чтобы получить возможности каждой строки.
  • Наконец, NDPROXY запрашивает драйвер мини-порта с OID_CO_TAPI_ADDRESS_CAPS , чтобы определить возможности телефонии для указанного адреса в указанной строке.

    • Если предыдущий запрос OID_CO_TAPI_LINE_CAPS указывает, что строка поддерживает только один адрес или что все адреса в строке имеют одинаковые возможности адреса, запросы NDPROXY OID_CO_TAPI_ADDRESS_CAPS только один раз, чтобы определить возможности всех адресов в строке.
    • Если строка поддерживает несколько адресов с различными возможностями, NDPROXY запрашивает OID_CO_TAPI_ADDRESS_CAPS один раз для каждого адреса в строке.

Драйвер NDPROXY использует сведения, полученные с помощью идентификаторов перечисления TAPI, для выполнения следующих действий:

  • Создание параметров TAPI для последующих вызовов TAPI.

  • Определите, следует ли принимать или отклонять последующие входящие вызовы TAPI.

  • Зарегистрируйте одну или несколько точек доступа службы TAPI (SAP), в которых будут приниматься последующие входящие вызовы TAPI.