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-terminated 字符串,指定与行、地址或调用关联的通信端口的名称。

如果 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 结构,可用于通信和调制解调器配置功能。