dcb 结构 (winbase.h)
定义串行通信设备的控制设置。
语法
typedef struct _DCB {
DWORD DCBlength;
DWORD BaudRate;
DWORD fBinary : 1;
DWORD fParity : 1;
DWORD fOutxCtsFlow : 1;
DWORD fOutxDsrFlow : 1;
DWORD fDtrControl : 2;
DWORD fDsrSensitivity : 1;
DWORD fTXContinueOnXoff : 1;
DWORD fOutX : 1;
DWORD fInX : 1;
DWORD fErrorChar : 1;
DWORD fNull : 1;
DWORD fRtsControl : 2;
DWORD fAbortOnError : 1;
DWORD fDummy2 : 17;
WORD wReserved;
WORD XonLim;
WORD XoffLim;
BYTE ByteSize;
BYTE Parity;
BYTE StopBits;
char XonChar;
char XoffChar;
char ErrorChar;
char EofChar;
char EvtChar;
WORD wReserved1;
} DCB, *LPDCB;
成员
DCBlength
结构的长度(以字节为单位)。 调用方必须将此成员设置为 sizeof(DCB)
。
BaudRate
通信设备运行的波特率。 此成员可以是实际的波特率值,也可以是以下索引之一。
fBinary
如果此成员为 TRUE,则启用二进制模式。 Windows 不支持非二元模式传输,因此此成员必须为 TRUE。
fParity
如果此成员为 TRUE,则执行奇偶校验并报告错误。
fOutxCtsFlow
如果此成员为 TRUE,则监视 CTS (明确发送) 信号以用于输出流控制。 如果此成员为 TRUE 且 CTS 已关闭,则输出将暂停,直到再次发送 CTS。
fOutxDsrFlow
如果此成员为 TRUE,则会监视 DSR (数据集就绪) 信号的输出流控制。 如果此成员为 TRUE 且 DSR 已关闭,则输出将暂停,直到再次发送 DSR。
fDtrControl
DTR (数据终端就绪) 流控制。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
打开设备时禁用 DTR 线路,并使其保持禁用状态。 |
|
在打开设备时启用 DTR 行并将其保留为打开状态。 |
|
启用 DTR 握手。 如果启用了握手,则应用程序使用 EscapeCommFunction 函数调整行是错误的。 |
fDsrSensitivity
如果此成员为 TRUE,则通信驱动程序对 DSR 信号的状态敏感。 驱动程序将忽略收到的任何字节,除非 DSR 调制解调器输入线很高。
fTXContinueOnXoff
如果此成员为 TRUE,则传输在输入缓冲区已满的 XoffLim 字节内,驱动程序传输 XoffChar 字符以停止接收字节后继续传输。 如果此成员为 FALSE,则在输入缓冲区为空且驱动程序传输 XonChar 字符以恢复接收之前,传输不会继续。
fOutX
指示传输期间是否使用 XON/XOFF 流控制。 如果此成员为 TRUE,则传输在收到 XoffChar 字符时停止,并在收到 XonChar 字符时再次启动。
fInX
指示是否在接收期间使用 XON/XOFF 流控制。 如果此成员为 TRUE,则当输入缓冲区位于已满的 XoffLim 字节内时发送 XoffChar 字符,当输入缓冲区位于空的 XonLim 字节内时,将发送 XonChar 字符。
fErrorChar
指示是否将收到具有奇偶校验错误的字节替换为 ErrorChar 成员指定的字符。 如果此成员为 TRUE 且 fParity 成员为 TRUE,则会发生替换。
fNull
如果此成员为 TRUE,则接收时将丢弃空字节。
fRtsControl
RTS (请求发送) 流控制。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
打开设备时禁用 RTS 线路,使其保持禁用状态。 |
|
在打开设备时启用 RTS 线,并使其保持打开状态。 |
|
启用 RTS 握手。 当“预先键入” (输入) 缓冲区小于一半满时,驱动程序将引发 RTS 线;当缓冲区超过四分之三时,驱动程序将降低 RTS 线。 如果启用了握手,则应用程序使用 EscapeCommFunction 函数调整行是错误的。 |
|
指定如果字节可用于传输,则 RTS 行将很高。 发送所有缓冲字节后,RTS 行将处于低位。 |
fAbortOnError
如果此成员为 TRUE,则发生错误时,驱动程序将终止所有读取和写入操作并处于错误状态。 在应用程序通过调用 ClearCommError 函数确认错误之前,驱动程序不会接受任何进一步的通信操作。
fDummy2
保留值;请勿使用。
wReserved
保留;必须为零。
XonLim
激活流控制以允许发送方传输之前,输入缓冲区中允许使用的最小字节数。 这假定在 fInX、 fRtsControl 或 fDtrControl 成员中指定了 XON/XOFF、RTS 或 DTR 输入流控制。
XoffLim
激活流控制以禁止发送方之前,输入缓冲区中允许的最小可用字节数。 请注意,发送方可能会在激活流控制信号后传输字符,因此此值不应为零。 这假定在 fInX、 fRtsControl 或 fDtrControl 成员中指定了 XON/XOFF、RTS 或 DTR 输入流控制。 允许的最大使用字节数是通过从输入缓冲区的大小(以字节为单位)中减去此值来计算的。
ByteSize
传输和接收的字节数。
Parity
要使用的奇偶校验方案。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
偶数奇偶校验。 |
|
标记奇偶校验。 |
|
无奇偶校验。 |
|
奇数奇偶校验。 |
|
空间奇偶校验。 |
StopBits
要使用的停止位数。 此成员可以是以下值之一。
值 | 含义 |
---|---|
|
1 个停止位。 |
|
1.5 个停止位。 |
|
2 个停止位。 |
XonChar
传输和接收的 XON 字符的值。
XoffChar
传输和接收的 XOFF 字符的值。
ErrorChar
用于替换收到奇偶校验错误的字节的字符的值。
EofChar
用于向数据结束发出信号的字符的值。
EvtChar
用于向事件发出信号的字符的值。
wReserved1
保留值;请勿使用。
注解
使用 DCB 结构配置 8250 时,以下限制适用于为 ByteSize 和 StopBits 成员指定的值:
- 数据位数必须为 5 到 8 位。
- 使用 5 个数据位和 2 个停止位是无效的组合,因为 6、7 或 8 个数据位具有 1.5 个停止位。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP |
最低受支持的服务器 | Windows Server 2003 |
标头 | winbase.h (包括 Windows.h) |