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 微型端口驱动程序根据 CoNDIS TAPI 注册中指定的新地址系列注册通知 NDPROXY 后,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 调用。

  • 在 SAP 中注册一个或多个 TAPI (访问) 接收后续传入的 TAPI 调用。