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 핸드셰이크를 사용하도록 설정합니다. 드라이버는 "type-ahead"(입력) 버퍼가 1/2 미만이면 RTS 라인을 발생시키고 버퍼가 3분의 1이 넘으면 RTS 라인을 낮춥니다. 핸드셰이크를 사용하도록 설정한 경우 애플리케이션이 EscapeCommFunction 함수를 사용하여 줄을 조정하는 것은 오류입니다.
RTS_CONTROL_TOGGLE
0x03
바이트를 전송할 수 있는 경우 RTS 라인이 높아지게 지정합니다. 버퍼링된 모든 바이트가 전송되면 RTS 줄이 낮아집니다.

fAbortOnError

이 멤버가 TRUE이면 드라이버가 오류가 발생하는 경우 오류 상태 모든 읽기 및 쓰기 작업을 종료합니다. 애플리케이션이 ClearCommError 함수를 호출하여 오류를 승인할 때까지 드라이버는 추가 통신 작업을 수락하지 않습니다.

fDummy2

예약되어 있으므로 사용하지 마세요.

wReserved

예약; 0이어야 합니다.

XonLim

흐름 제어가 활성화되기 전에 입력 버퍼에서 허용되는 최소 사용 바이트 수는 보낸 사람의 전송을 허용합니다. XON/XOFF, RTS 또는 DTR 입력 흐름 제어가 fInX, fRtsControl 또는 fDtrControl 멤버에 지정되어 있다고 가정합니다.

XoffLim

흐름 제어가 활성화되기 전에 입력 버퍼에서 허용되는 최소 사용 가능한 바이트 수로 발신자를 억제합니다. 발신자는 흐름 제어 신호가 활성화된 후 문자를 전송할 수 있으므로 이 값은 0이 되어서는 안 됩니다. XON/XOFF, RTS 또는 DTR 입력 흐름 제어가 fInX, fRtsControl 또는 fDtrControl 멤버에 지정되어 있다고 가정합니다. 허용되는 최대 바이트 수는 입력 버퍼의 크기(바이트)에서 이 값을 빼서 계산됩니다.

ByteSize

전송 및 수신된 바이트의 비트 수입니다.

Parity

사용할 패리티 체계입니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
짝수
2
패리티도 있습니다.
MARKPARITY
3
패리티를 표시합니다.
NOPARITY
0
패리티가 없습니다.
ODDPARITY
1
홀수 패리티.
스페이스파리티
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개의 데이터 비트를 사용하는 것은 1.5개의 중지 비트가 있는 6, 7 또는 8개의 데이터 비트와 같이 잘못된 조합입니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP
지원되는 최소 서버 Windows Server 2003
머리글 winbase.h(Windows.h 포함)

추가 정보

BuildCommDCB

ClearCommError

EscapeCommFunction

GetCommState

SetCommState