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 成员是打开的通信端口的句柄。 如果端口尚未打开,或者 lineGetID 的 dwSelect 参数不是LINECALLSELECT_CALL值,则此成员为 NULL。 如果调用处于活动状态,服务提供商通常会打开端口本身来直接控制通信硬件,但仅在连接线路时才需要返回有效的句柄。 服务提供商使用 FILE_FLAG_OVERLAPPED 值打开端口,然后使用 lineSetDevConfig 函数指定的设置配置端口。 可以通过将通信函数与返回的句柄结合使用,为设备设置其他配置选项。
szDeviceName 成员是一个以 null 结尾的字符串,用于指定与线路、地址或呼叫关联的通信端口的名称。
如果 hComm 是有效的句柄,则可以在对文件函数(如 ReadFile 和 WriteFile)的后续调用中使用它来发送和接收调用中的数据。 使用完通信端口后,最好在使用 lineDeallocateCall 函数解除分配调用之前,必须使用 CloseHandle 函数关闭端口。
使用 lineGetDevConfig 和 lineSetDevConfig 函数时,某些服务提供商要求此设备类的配置数据采用以下格式:
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;
下面是用于 lineGetDevConfig 和 lineSetDevConfig 函数的设备配置信息。
-
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 结构。