直通模式

调用在 LINEBEARERMODE_PASSTHROUGH 中处于活动状态时,服务提供商会授予对附加硬件的直接访问权限,以供应用程序控制。 应用程序可以使用此模式对异步调制解调器进行临时直接控制,通过 通信功能进行访问,以便配置或使用服务提供商不支持的特殊功能,例如) (类 1、2 等。 通用调制解调器驱动程序 (UNIMODEM) 服务提供商支持此持有者模式。

支持LINEBEARERMODE_PASSTHROUGH的服务提供商在 LINEDEVCAPS 结构的 dwBearerModes 成员中指示它。 指示LINEBEARERMODE_PASSTHROUGH时,Unimodem 服务提供程序还将在 LINEDEVCAPS 结构的 DevSpecific 区域中包括用于访问与线路设备关联的调制解调器的数据的注册表项,格式如下:

struct {
    DWORD dwContents;   // Set to 1 (indicates containing key).
    DWORD dwKeyOffset;  // Offset to key from start of this
                        // structure (not from start of
                        // LINEDEVCAPS structure).
                        // 8 in this case. 
    BYTE rgby[...];     // Place that contains null-terminated
                        // registry key. 
}

例如:

    00000001 00000008 74737953 435c6d65  ........System\C
    65727275 6f43746e 6f72746e 7465536c  urrentControlSet
    7265535c 65636976 6c435c73 5c737361  urrentControlSet
    65646f4d 30305c6d xx003030 xxxxxxxx  Modem\0000.

然后,可以使用 RegOpenKey 函数打开此注册表项。

传递模式最常使用 lineMakeCallCall 函数调用,方法是在 lpCallParams 参数指向的 LINECALLPARAMS 结构的 dwBearerMode 成员中设置LINEBEARERMODE_PASSTHROUGH位。 完成此操作后,服务提供商会打开调制解调器的串行端口,并立即将调用置于 LINECALLSTATE_CONNECTED。 然后,应用程序可以使用 lineGetID 函数和设备类“comm/datamodem”来获取打开的文件句柄,以便从 comm 端口读取和写入。

也可以调用直通模式来响应传入呼叫。 通常,应用程序会在呼叫处于 LINECALLSTATE_OFFERING时调用直通模式,然后才能接听呼叫。 应用程序调用 lineSetCallParams,而不是调用 lineAnswer,并将LINEBEARERMODE_PASSTHROUGH作为 dwBearerMode 参数传递。 完成此操作后,与 lineMakeCall 一样,服务提供商会立即将调用置于 LINECALLSTATE_CONNECTED ,应用程序可以使用 lineGetID 获取打开端口的句柄。 当调用处于LINECALLSTATE_OFFERINGLINECALLSTATE_ACCEPTEDLINECALLSTATE_CONNECTED时,可以调用 lineSetCallParams 函数。

如果呼叫是传入呼叫,则传递模式通常通过在从 lineMakeCall 或第一个LINE_CALLSTATE消息获取的调用句柄上调用 lineDrop 终止。 服务提供商将关闭端口,并将调制解调器还原到其默认状态。 应用程序必须在从 lineGetID 收到的句柄上调用 CloseHandle

传递模式也可以通过调用 lineSetCallParams 来终止,并将 dwBearerMode 参数设置为 LINEBEARERMODE_VOICE 由 lineSetMediaMode 设置的媒体类型 (模式) 假定有效。 如果 LINEMEDIAMODE_DATAMODEM 处于活动状态,则服务提供商将接听呼叫,就好像是已在进行的数据调制解调器呼叫一样;如果随后调用 lineDrop ,则服务提供商将发出相应的调制解调器命令或接口状态更改以删除数据调用。

注意

如果在呼叫正在进行时直通模式终止,则线路的 TAPI 服务提供商 (TSP) 可能会将调制解调器设置还原到其默认状态。 Unimodem 是终止直通模式时始终还原调制解调器设置的 TSP 的一个示例。 因此,传递模式不能用作配置设备的方法。 传递模式应仅用于在传递终止时可视为完成的不同活动。 可以使用直通模式的活动示例包括发送传真或通过专有调制解调器协议播放波形/音频数据。