IOCTL_SERIAL_GET_WAIT_MASK IOCTL(ntddser.h)
IOCTL_SERIAL_GET_WAIT_MASK 요청은 현재 직렬 컨트롤러에 대해 설정된 이벤트 대기 마스크를 반환합니다.
클라이언트는 SERIAL_EV_EVENT2 통해SERIAL_EV_RXCHAR 플래그 비트로 표시되는 대기 이벤트를 기다릴 수 있습니다. 이러한 이벤트 플래그에 대한 자세한 내용은 주의 섹션을 참조하세요.
이벤트 대기 마스크를 설정하기 위해 클라이언트는 IOCTL_SERIAL_SET_WAIT_MASK 요청을 사용할 수 있습니다. 대기 이벤트가 발생할 때까지 대기하기 위해 클라이언트는 IOCTL_SERIAL_WAIT_ON_MASK 요청을 사용합니다.
주 코드
입력 버퍼
없음
입력 버퍼 길이
없음
출력 버퍼
AssociatedIrp.SystemBuffer 멤버는 직렬 컨트롤러 드라이버가 대기 마스크를 출력하는 데 사용하는 클라이언트 할당 ULONG 버퍼를 가리킵니다. 대기 마스크는 하나 이상의 SERIAL_EV_XXX 이벤트 플래그 중 0이거나 비트 OR입니다.
출력 버퍼 길이
Parameters.DeviceIoControl.OutputBufferLength 멤버는 ULONG의 크기(바이트)로 설정됩니다.
상태 블록
요청이 성공하면 정보 멤버가 ULONG의 크기(바이트)로 설정됩니다. 그렇지 않으면 정보 멤버가 0으로 설정됩니다.
Status 멤버는 직렬 디바이스 제어 요청에 대한 일반 상태 값 중 하나로 설정됩니다.
설명
SERIAL_EV_XXX 상수는 직렬 포트에 대한 대기 마스크의 플래그 비트를 정의합니다.
#define SERIAL_EV_RXCHAR 0x0001 #define SERIAL_EV_RXFLAG 0x0002 #define SERIAL_EV_TXEMPTY 0x0004 #define SERIAL_EV_CTS 0x0008 #define SERIAL_EV_DSR 0x0010 #define SERIAL_EV_RLSD 0x0020 #define SERIAL_EV_BREAK 0x0040 #define SERIAL_EV_ERR 0x0080 #define SERIAL_EV_RING 0x0100 #define SERIAL_EV_PERR 0x0200 #define SERIAL_EV_RX80FULL 0x0400 #define SERIAL_EV_EVENT1 0x0800 #define SERIAL_EV_EVENT2 0x1000
SERIAL_EV_XXX 상수는 대기 마스크에 지정할 수 있는 이벤트 유형을 정의합니다. 클라이언트(애플리케이션 또는 주변 드라이버)가 직렬 포트에 대한 연결을 연 후 클라이언트는 클라이언트가 모니터링해야 하는 이벤트 유형을 나타내는 대기 마스크를 지정할 수 있습니다. 이러한 이벤트는 직렬 포트의 하드웨어 상태에 변경됩니다. 대기 마스크의 이벤트가 발생하면 클라이언트에 알림이 표시됩니다.
IOCTL_SERIAL_SET_WAIT_MASK 및 IOCTL_SERIAL_GET_WAIT_MASK 컨트롤 요청은 이벤트 대기 마스크를 사용하여 클라이언트가 대기할 수 있는 이벤트 집합을 지정합니다. 대기 마스크 값은 하나 이상의 SERIAL_EV_XXX 상수 중 0 또는 비트 OR입니다. 대기 마스크 값이 0이면 클라이언트가 이벤트를 기다리고 있지 않음을 나타냅니다.
클라이언트는 현재 설정된 대기 마스크의 이벤트를 기다리는 IOCTL_SERIAL_WAIT_ON_MASK 제어 요청을 보냅니다. 직렬 컨트롤러 드라이버는 대기 마스크의 이벤트가 발생할 때 이 요청을 완료합니다.
다음 표에서는 SerCx2, SerCx 및 Serial.sys 지원되는 SERIAL_EV_XXX 플래그 비트를 보여 줍니다. 테이블의 예 항목은 직렬 프레임워크 확장 또는 드라이버가 해당 플래그 비트를 지원한다는 것을 나타냅니다. 아니요 항목은 플래그 비트가 지원되지 않음을 나타냅니다.
플래그 비트 | SerCx2 | SerCx | Serial.sys |
---|---|---|---|
SERIAL_EV_RXCHAR | Yes | Yes | Yes |
SERIAL_EV_RXFLAG | 참고를 참조하세요. | 예 | 예 |
SERIAL_EV_TXEMPTY | Yes | Yes | Yes |
SERIAL_EV_CTS | Yes | Yes | Yes |
SERIAL_EV_DSR | Yes | Yes | Yes |
SERIAL_EV_RLSD | 참고를 참조하세요. | Yes | Yes |
SERIAL_EV_BREAK | Yes | Yes | Yes |
SERIAL_EV_ERR | Yes | Yes | Yes |
SERIAL_EV_RING | 참고를 참조하세요. | Yes | Yes |
SERIAL_EV_PERR | 참고를 참조하세요. | 예 | No |
SERIAL_EV_RX80FULL | 참고를 참조하세요. | 예 | 예 |
SERIAL_EV_EVENT1 | 참고를 참조하세요. | 예 | No |
SERIAL_EV_EVENT2 | 참고를 참조하세요. | 아니요 | No |
요구 사항
요구 사항 | 값 |
---|---|
헤더 | ntddser.h(Ntddser.h 포함) |