Share via


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

通訊裝置運作的傳輸速率。 此成員可以是實際的傳輸速率值,或下列其中一個索引。

意義
CBR_110
110
110 bps
CBR_300
300
300 bps
CBR_600
600
600 bps
CBR_1200
1200
1200 bps
CBR_2400
2400
2400 bps
CBR_4800
4800
4800 bps
CBR_9600
9600
9600 bps
CBR_14400
14400
14400 bps
CBR_19200
19200
19200 bps
CBR_38400
38400
38400 bps
CBR_57600
57600
57600 bps
CBR_115200
115200
115200 bps
CBR_128000
128000
128000 bps
CBR_256000
256000
256000 bps

fBinary

如果這個成員為 TRUE,則會啟用二進位模式。 Windows 不支援非系結模式傳輸,因此此成員必須為 TRUE

fParity

如果這個成員為 TRUE,則會執行同位檢查,並報告錯誤。

fOutxCtsFlow

如果此成員為 TRUE,則會監視 CTS (清除到傳送) 訊號,以進行輸出流程控制。 如果此成員為 TRUE 且 CTS 已關閉,輸出會暫停,直到再次傳送 CTS 為止。

fOutxDsrFlow

如果此成員為 TRUE,則會監視 DSR (數據集就緒) 訊號以進行輸出流程控制。 如果此成員為 TRUE 且 DSR 已關閉,輸出會暫停,直到再次傳送 DSR 為止。

fDtrControl

DTR (數據終端機就緒) 流程控制。 這個成員可以是下列其中一個值。

意義
DTR_CONTROL_DISABLE
0x00
當裝置開啟並停用時,停用 DTR 行。
DTR_CONTROL_ENABLE
0x01
當裝置開啟並離開時,啟用 DTR 行。
DTR_CONTROL_HANDSHAKE
0x02
啟用 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_CONTROL_DISABLE
0x00
當裝置開啟並停用它時,停用 RTS 行。
RTS_CONTROL_ENABLE
0x01
開啟裝置並讓其保持開啟狀態時,啟用 RTS 行。
RTS_CONTROL_HANDSHAKE
0x02
啟用 RTS 交握。 當「預先輸入」 (輸入) 緩衝區小於一半滿時,驅動程式會引發 RTS 行,並在緩衝區超過三分之三時降低 RTS 行。 如果已啟用交握,應用程式會使用 EscapeCommFunction 函式來調整行是錯誤的。
RTS_CONTROL_TOGGLE
0x03
指定如果位元組可供傳輸,RTS 行會很高。 傳送所有緩衝位元組之後,RTS 行將會很低。

fAbortOnError

如果這個成員為 TRUE,則驅動程式會在發生錯誤時終止所有讀取和寫入作業,並具有錯誤狀態。 在應用程式呼叫 ClearCommError 函式確認錯誤之前,驅動程式將不會接受任何進一步的通訊作業。

fDummy2

保留;請勿使用。

wReserved

保留;必須是零。

XonLim

啟動流程控制以允許傳送者傳輸之前,輸入緩衝區中允許使用的位元元組數目下限。 這假設 在 fInXfRtsControlfDtrControl 成員中指定 XON/XOFF、RTS 或 DTR 輸入流程控制件。

XoffLim

啟動流程控制以禁止傳送者之前,輸入緩衝區中允許的可用位元組數目下限。 請注意,傳送者可能會在啟動流程控制訊號之後傳輸字元,因此此值應該永遠不會是零。 這假設 在 fInXfRtsControlfDtrControl 成員中指定 XON/XOFF、RTS 或 DTR 輸入流程控制件。 允許使用的最大位元組數目是藉由從輸入緩衝區的大小減去此值來計算。

ByteSize

傳輸和接收位元組中的位數目。

Parity

要使用的同位配置。 這個成員可以是下列其中一個值。

意義
EVENPARITY
2
甚至同位。
MARKPARITY
3
標記同位。
NOPARITY
0
無同位。
ODDPARITY
1
奇數同位。
SPACEPARITY
4
空間同位。

StopBits

要使用的停止位數目。 這個成員可以是下列其中一個值。

意義
ONESTOPBIT
0
1 個停止位。
ONE5STOPBITS
1
1.5 停止位。
TWOSTOPBITS
2
2 個停止位。

XonChar

傳輸和接收的 XON 字元值。

XoffChar

傳輸和接收的 XOFF 字元值。

ErrorChar

用來以同位錯誤取代所接收位元元值。

EofChar

用來發出數據結尾訊號的字元值。

EvtChar

用來發出事件訊號的字元值。

wReserved1

保留;請勿使用。

備註

DCB 結構用來設定 8250 時,下列限制會套用至 ByteSizeStopBits 成員所指定的值:

  • 數據位的數目必須是5到8位。
  • 搭配 2 個停止位使用 5 個數據位是無效的組合,因為 6、7 或 8 個數據位具有 1.5 個停止位。

規格需求

需求
最低支援的用戶端 Windows XP
最低支援的伺服器 Windows Server 2003
標頭 winbase.h (包含 Windows.h)

另請參閱

BuildCommDCB

ClearCommError

EscapeCommFunction

GetCommState

SetCommState