comm/datamodem

comm/datamodem 设备类由 datamodem 设备组成。 可以使用文件和通信函数访问这些设备。 此类中的设备与支持LINEMEDIAMODE_DATAMODEM媒体类型的线路设备相关联,该类型在线路设备的 LINEDEVCAPS 结构的 dwMediaModes 成员中指定。

lineGetID 函数填充 VARSTRING 结构,将 dwStringFormat 设置为 STRINGFORMAT_BINARY 值并追加这些附加成员:

HANDLE hComm;            // file handle to data modem
CHAR   szDeviceName[1];  // name of data modem

hComm 成员是打开的通信端口的句柄。 如果端口尚未打开,或者 lineGetIDdwSelect 参数不是LINECALLSELECT_CALL值,则此成员为 NULL。 如果调用处于活动状态,服务提供商通常会打开端口本身来直接控制通信硬件,但仅在连接线路时才需要返回有效的句柄。 服务提供商使用 FILE_FLAG_OVERLAPPED 值打开端口,然后使用 lineSetDevConfig 函数指定的设置配置端口。 可以通过将通信函数与返回的句柄结合使用,为设备设置其他配置选项。

szDeviceName 成员是一个以 null 结尾的字符串,用于指定与线路、地址或呼叫关联的通信端口的名称。

如果 hComm 是有效的句柄,则可以在对文件函数(如 ReadFileWriteFile)的后续调用中使用它来发送和接收调用中的数据。 使用完通信端口后,最好在使用 lineDeallocateCall 函数解除分配调用之前,必须使用 CloseHandle 函数关闭端口。

使用 lineGetDevConfiglineSetDevConfig 函数时,某些服务提供商要求此设备类的配置数据采用以下格式:

typedef struct  tagDEVCFG  {
  DEVCFGHDR   dfgHdr;
  COMMCONFIG  commconfig;
} DEVCFG, *PDEVCFG, FAR* LPDEVCFG;

// Device setting information
typedef struct  tagDEVCFGDR  {
  DWORD       dwSize;
  DWORD       dwVersion;
  WORD        fwOptions;
  WORD        wWaitBong;
} DEVCFGHDR;

下面是用于 lineGetDevConfiglineSetDevConfig 函数的设备配置信息。

dwSize

DEVCFGHDR 结构的大小和 COMMCONFIG 结构的实际大小之和。

dwVersion

Unimodem DevConfig 结构的版本号。 此成员可以MDMCFG_VERSION (0x00010003) 。

fwOptions

显示在“Unimodem 选项”页上的选项标志。 此成员可以是以下值的组合:

TERMINAL_PRE (1)

显示终端前屏幕。

TERMINAL_POST (2)

显示终端后屏幕。

MANUAL_DIAL (4)

手动拨打电话(如果能够这样做)。

LAUNCH_LIGHTS (8)

在任务栏的状态区域中显示调制解调器图标。

默认情况下,仅设置LAUNCH_LIGHTS值

wWaitBong

以两秒粒度 (秒) 以替换等待信用音调 ($) 的秒数。

Commconfig

可与通信和调制解调器配置功能一起使用的 COMMCONFIG 结构。