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,則除非輸入緩衝區位於空白的 XonLim 位元組內,且驅動程式已傳輸 XonChar 字元以繼續接收,否則不會繼續傳輸。
fOutX
指出傳輸期間是否使用 XON/XOFF 流量控制。 如果這個成員為 TRUE,傳輸會在收到 XoffChar 字元時停止,並在收到 XonChar 字元時再次啟動。
fInX
指出在接收期間是否使用 XON/XOFF 流量控制。 如果這個成員為 TRUE,當輸入緩衝區位於填滿的 XoffLim 位元組內時,就會傳送 XoffChar 字元,而當輸入緩衝區位於空白的 XonLim 位元組內時,就會傳送 XonChar 字元。
fErrorChar
指出是否以 ErrorChar 成員指定的字元取代以同位錯誤接收的位元元組。 如果此成員為 TRUE ,且 fParity 成員為 TRUE,則會發生取代。
fNull
如果這個成員為 TRUE,則會在收到時捨棄 Null 位元組。
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位。
- 搭配 2 個停止位使用 5 個數據位是無效的組合,因為 6、7 或 8 個數據位具有 1.5 個停止位。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP |
最低支援的伺服器 | Windows Server 2003 |
標頭 | winbase.h (包含 Windows.h) |