다음을 통해 공유


SERIAL_COMMPROP 구조체(ntddser.h)

SERIAL_COMMPROP 구조체는 직렬 포트의 속성을 지정합니다.

구문

typedef struct _SERIAL_COMMPROP {
  USHORT PacketLength;
  USHORT PacketVersion;
  ULONG  ServiceMask;
  ULONG  Reserved1;
  ULONG  MaxTxQueue;
  ULONG  MaxRxQueue;
  ULONG  MaxBaud;
  ULONG  ProvSubType;
  ULONG  ProvCapabilities;
  ULONG  SettableParams;
  ULONG  SettableBaud;
  USHORT SettableData;
  USHORT SettableStopParity;
  ULONG  CurrentTxQueue;
  ULONG  CurrentRxQueue;
  ULONG  ProvSpec1;
  ULONG  ProvSpec2;
  WCHAR  ProvChar[1];
} SERIAL_COMMPROP, *PSERIAL_COMMPROP;

멤버

PacketLength

이 구조체로 시작하고 요청된 속성 데이터를 포함하는 데이터 패킷의 크기(바이트)입니다. 이 크기에는 SERIAL_COMMPROP 구조체와 이 구조체를 따르는 추가 ProvChar 배열 요소가 포함됩니다.

PacketVersion

이 구조체의 버전입니다. 현재 버전 번호는 2입니다.

ServiceMask

이 통신 공급자가 구현하는 서비스를 나타내는 비트 마스크입니다. 이 멤버는 항상 모뎀 공급자를 포함한 직렬 통신 공급자에 의해 SERIAL_SP_SERIALCOMM 설정됩니다. ProvSubType 멤버는 구현되는 특정 유형의 직렬 통신(예: 모뎀)을 나타냅니다.

Reserved1

사용되지 않습니다.

MaxTxQueue

최대 전송 큐 크기입니다. 직렬 컨트롤러 드라이버의 내부 출력 버퍼의 최대 크기(바이트)입니다. 값이 0이면 직렬 공급자가 적용한 최대값이 없음을 나타냅니다.

MaxRxQueue

최대 수신 큐 크기입니다. 직렬 컨트롤러 드라이버의 내부 입력 버퍼의 최대 크기(바이트)입니다. 값이 0이면 직렬 공급자가 적용한 최대값이 없음을 나타냅니다.

MaxBaud

허용되는 최대 전송 속도입니다. 확장 기반 직렬 컨트롤러 드라이버는 이 멤버를 초당 비트(bps)로 표현된 전송 속도로 설정합니다. 예를 들어 직렬 컨트롤러가 최대 전송 속도 115,200bps를 지원하는 경우 드라이버는 MaxBaud = 115200을 설정합니다.

그러나 Serial.sys 이전 직렬 컨트롤러 드라이버는 MaxBaud 를 Ntddser.h 헤더 파일에 정의된 SERIAL_BAUD_XXX 플래그 비트 중 하나로 설정합니다. 이 멤버에 대해 다음 값이 정의됩니다.

Description
SERIAL_BAUD_075 75 bps
SERIAL_BAUD_110 110 bps
SERIAL_BAUD_134_5 134.5 bps
SERIAL_BAUD_150 150 bps
SERIAL_BAUD_300 300 bps
SERIAL_BAUD_600 600 bps
SERIAL_BAUD_1200 1,200 bps
SERIAL_BAUD_1800 1,800 bps
SERIAL_BAUD_2400 2,400 bps
SERIAL_BAUD_4800 4,800 bps
SERIAL_BAUD_7200 7,200 bps
SERIAL_BAUD_9600 9,600 bps
SERIAL_BAUD_14400 14,400 bps
SERIAL_BAUD_19200 19,200 bps
SERIAL_BAUD_38400 38,400 bps
SERIAL_BAUD_56K 56,000 bps
SERIAL_BAUD_57600 57,600 bps
SERIAL_BAUD_115200 115,200 bps
SERIAL_BAUD_128K 128,000 bps
SERIAL_BAUD_USER 프로그래밍 가능한 전송 속도를 사용할 수 있습니다.

ProvSubType

특정 통신 공급자 유형입니다. ServiceMask 멤버가 SERIAL_SP_SERIALCOMM 설정되면 ProvSubType은 다음 값 중 하나로 설정됩니다.

의미
SERIAL_SP_UNSPECIFIED Unspecified
SERIAL_SP_RS232 RS-232 직렬 포트
SERIAL_SP_PARALLEL 병렬 포트
SERIAL_SP_RS422 RS-422 직렬 포트
SERIAL_SP_RS423 RS-423 직렬 포트
SERIAL_SP_RS449 RS-449 직렬 포트
SERIAL_SP_MODEM 모뎀 디바이스
SERIAL_SP_FAX FAX 디바이스
SERIAL_SP_SCANNER 스캐너 디바이스
SERIAL_SP_BRIDGE 지정되지 않은 네트워크 브리지
SERIAL_SP_LAT LAT 프로토콜
SERIAL_SP_TELNET TCP/IP 텔넷® 프로토콜
SERIAL_SP_X25 X.25 표준

ProvCapabilities

공급자가 제공하는 기능입니다. 이 멤버는 다음 플래그 비트 중 하나 이상의 비트 OR 또는 0으로 설정됩니다.

Description
SERIAL_PCF_DTRDSR DTR(데이터 터미널 준비) 및 DSR(데이터 세트 준비)이 지원됩니다.
SERIAL_PCF_RTSCTS RTS(보내기 요청) 및 CTS(전송할 수 없음)가 지원됩니다.
SERIAL_PCF_CD CD(통신 사업자 검색)가 지원됩니다.
SERIAL_PCF_PARITY_CHECK 패리티 검사가 지원됩니다.
SERIAL_PCF_XONXOFF XON(전송 켜기) 및 XOFF(전송 해제) 흐름 제어가 지원됩니다.
SERIAL_PCF_SETXCHAR XON 및 XOFF 문자는 설정할 수 있습니다.
SERIAL_PCF_TOTALTIMEOUTS 총 경과 시간 제한은 지원됩니다.
SERIAL_PCF_INTTIMEOUTS 간격 제한 시간이 지원됩니다.
SERIAL_PCF_SPECIALCHARS 특수 문자가 지원됩니다.
SERIAL_PCF_16BITMODE 특수 16비트 모드가 지원됩니다.

SettableParams

변경할 수 있는 통신 매개 변수를 나타내는 비트 마스크입니다. 이 멤버는 다음 플래그 비트 중 하나 이상의 비트 OR 또는 0으로 설정됩니다.

Description
SERIAL_SP_PARITY 패리티 형식(짝수 또는 홀수)
SERIAL_SP_BAUD 전송 속도
SERIAL_SP_DATABITS 데이터 비트
SERIAL_SP_STOPBITS 정지 비트
SERIAL_SP_HANDSHAKING 핸드셰이크(흐름 제어)
SERIAL_SP_PARITY_CHECK 패리티 검사
SERIAL_SP_CARRIER_DETECT 이동 통신 사업자 검색

SettableBaud

사용할 수 있는 전송 속도를 나타내는 비트 마스크입니다. 이 멤버에 대해 정의된 SERIAL_BAUD_XXX 플래그 비트를 설명하는 테이블은 MaxBaud 멤버에 대한 설명을 참조하세요. SettableBaud 는 0으로 설정되거나 비트 OR 또는 이러한 플래그 비트 중 하나 이상으로 설정됩니다.

직렬 컨트롤러 드라이버는 SettableBaud 비트 마스크 값에서 SERIAL_BAUD_USER 플래그 비트를 설정하여 다른 SERIAL_BAUD_XXX 플래그 비트로 표현할 수 있는 것보다 더 높은 전송 속도를 지원함을 나타냅니다. 예를 들어 57600, 115200, 230400 및 460800 bps의 전송 속도를 지원하는 드라이버는 SettableBaud = (SERIAL_BAUD_57600 | SERIAL_BAUD_115200 | SERIAL_BAUD_USER).

SettableData

설정할 수 있는 데이터 비트 수입니다. 이 멤버는 다음 플래그 비트 중 하나 이상의 비트 OR 또는 0으로 설정됩니다.

Description
SERIAL_DATABITS_5 5개의 데이터 비트
SERIAL_DATABITS_6 6개의 데이터 비트
SERIAL_DATABITS_7 7개 데이터 비트
SERIAL_DATABITS_8 8 데이터 비트
SERIAL_DATABITS_16 16개 데이터 비트
SERIAL_DATABITS_16X 직렬 하드웨어 라인을 통한 특수 와이드 경로

SettableStopParity

선택할 수 있는 중지 비트 및 패리티 설정입니다. 이 멤버는 다음 플래그 비트 중 하나 이상의 비트 OR 또는 0으로 설정됩니다.

Description
SERIAL_STOPBITS_10 1 정지 비트입니다.
SERIAL_STOPBITS_15 하나 반 정지 비트.
SERIAL_STOPBITS_20 2 정지 비트입니다.
SERIAL_PARITY_NONE 패리티 비트는 사용되지 않습니다.
SERIAL_PARITY_ODD 홀수 패리티. 문자 값의 1s 수가 짝수이면 패리티 비트는 1입니다. 그렇지 않으면 패리티 비트가 0입니다.
SERIAL_PARITY_EVEN 심지어 패리티. 문자 값의 1s 수가 홀수인 경우 패리티 비트는 1입니다. 그렇지 않으면 패리티 비트가 0입니다.
SERIAL_PARITY_MARK 패리티 비트는 항상 1로 설정됩니다.
SERIAL_PARITY_SPACE 패리티 비트는 항상 0으로 설정됩니다.

CurrentTxQueue

전송 큐 크기입니다. 이 멤버는 직렬 컨트롤러 드라이버의 내부 출력 버퍼 크기를 바이트 단위로 지정합니다. 값이 0이면 버퍼 크기를 사용할 수 없음을 나타냅니다.

SerCx2 및 SerCx의 경우 연결된 직렬 컨트롤러 드라이버는 일반적으로 이 멤버를 0으로 설정합니다. Serial.sys 이 멤버를 출력 버퍼 크기를 나타내는 0이 아닌 값으로 설정합니다.

CurrentRxQueue

수신 큐 크기입니다. 이 멤버는 직렬 컨트롤러 드라이버의 내부 입력 버퍼 크기를 바이트 단위로 지정합니다. 값이 0이면 버퍼 크기를 사용할 수 없음을 나타냅니다.

SerCx2 및 SerCx의 경우 이 멤버는 연결된 직렬 컨트롤러 드라이버에 의해 설정됩니다. SerCx2의 경우 드라이버는 일반적으로 이 멤버를 0으로 설정합니다. SerCx의 경우 드라이버는 일반적으로 이 멤버를 SerCx가 수신된 데이터를 버퍼링하는 데 사용하는 링 버퍼의 크기로 설정합니다. 이 드라이버는 SerCxGetRingBufferUtilization 메서드를 호출하여 SerCx에서 링 버퍼 크기를 가져올 수 있습니다.

Serial.sys 이 멤버를 입력 버퍼 크기를 나타내는 0이 아닌 값으로 설정합니다.

ProvSpec1

공급자별 데이터입니다. 직렬 포트에 필요한 데이터 형식에 대한 공급자별 데이터를 사용할 수 없는 한 애플리케이션은 이 멤버를 무시해야 합니다.

ProvSpec2

공급자별 데이터입니다. 직렬 포트에 필요한 데이터 형식에 대한 공급자별 데이터를 사용할 수 없는 한 애플리케이션은 이 멤버를 무시해야 합니다.

ProvChar[1]

공급자별 데이터입니다. 직렬 포트에 필요한 데이터 형식에 대한 공급자별 데이터를 사용할 수 없는 한 애플리케이션은 이 멤버를 무시해야 합니다. 이 멤버는 하나 이상의 요소로 구성된 와이드 문자 배열의 첫 번째 요소입니다. 추가 요소는 즉시 이 멤버를 따릅니다. PacketLength 멤버는 SERIAL_COMMPROP 구조체의 크기와 이 구조체 뒤에 오는 추가 ProvChar 배열 요소를 지정합니다.

설명

이 구조체는 IOCTL_SERIAL_GET_PROPERTIES 요청에 사용됩니다.

요구 사항

요구 사항
헤더 ntddser.h

추가 정보

IOCTL_SERIAL_GET_PROPERTIES