CoNDIS TAPI 初始化

本部分讨论 CoNDIS WAN 微型端口驱动程序如何为应用程序枚举其 TAPI 功能。 这些 TAPI 功能包括:

  • 微型端口驱动程序支持的线路设备数 - 线路设备包括调制解调器、传真板和 ISDN 卡。

  • 特定线路的信息 - 线路信息包括线路标识符和通道地址数, (电话号码) 线路支持同时传输语音和数据。

  • 设备线路上特定通道地址的信息 - 地址信息包括,例如,呼叫者的身份 (呼叫者 ID) 以及可能的活动呼叫数。

若要检索有关基础硬件的信息,NDPROXY 会发出线路和通道地址功能的请求。 也就是说,NDPROXY 驱动程序查询 CoNDIS WAN 微型端口驱动程序的 TAPI 功能。 NDPROXY 驱动程序调用 NdisCoOidRequest 函数来查询微型端口驱动程序的 TAPI 功能。 在此调用中,NDPROXY 传递NDIS_OID_REQUEST结构。 NDPROXY 在NDIS_OID_REQUEST中指定以下内容:

  • RequestType 成员中的 NdisRequestQueryInformation

  • 对象标识符 (OID) ,指定从 Oid 成员中的微型端口驱动程序检索 TAPI 功能

  • 用于保存 InformationBuffer 成员中返回的 TAPI 功能信息的缓冲区

NDPROXY 驱动程序发送到 CoNDIS WAN 微型端口驱动程序的所有查询都可以同步或异步完成。 如果 CoNDIS WAN 微型端口驱动程序确定无法立即完成查询,则只需返回NDIS_STATUS_PENDING并在完成查询后从其 ProtocolCoOidRequest 函数中调用 NdisMCmOidRequestComplete 函数。

在 CoNDIS WAN 微型端口驱动程序通知 NDPROXY 有关 CoNDIS TAPI 注册中指定的新地址系列注册后,NDPROXY 查询以下 OID 以确定 CoNDIS WAN 微型端口驱动程序和微型端口驱动程序的 NIC 特定于 TAPI 的功能。

  • 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 枚举 OID 获取的信息执行以下操作:

  • 为后续 TAPI 调用创建 TAPI 参数。

  • 确定是接受还是拒绝后续传入 TAPI 呼叫。

  • 注册一个或多个 TAPI 服务接入点, (接收后续 TAPI 呼叫) 的 SAP。