다음을 통해 공유


IOCTL_SERIAL_SET_MODEM_CONTROL IOCTL(ntddser.h)

IOCTL_SERIAL_SET_MODEM_CONTROL 요청은 UART에서 MCR(모뎀 컨트롤 레지스터)을 설정합니다. 클라이언트에서 제공하는 레지스터 설정에서 매개 변수 검사가 수행되지 않습니다.

MCR의 값을 얻기 위해 클라이언트는 IOCTL_SERIAL_GET_MODEM_CONTROL 요청을 사용할 수 있습니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

ASSOCIATedIrp.SystemBuffer 멤버는 모뎀 제어 정보를 입력하는 데 사용되는 클라이언트 할당 ULONG을 가리킵니다.

입력 버퍼 길이

Parameters.DeviceIoControl.InputBufferLength 멤버는 ULONG의 크기(바이트)로 설정됩니다.

출력 버퍼

없음

출력 버퍼 길이

없음

상태 블록

정보 멤버가 0으로 설정됩니다.

Status 멤버는 직렬 디바이스 제어 요청에 대한 일반 상태 값 중 하나로 설정됩니다.

설명

이 I/O 제어 요청(IOCTL)의 구현은 16550 호환 UART 디바이스에서 MCR(모뎀 컨트롤 레지스터)에 대해 정의된 표준 레이아웃이 없기 때문에 하드웨어에 따라 다릅니다. 직렬 포트에 연결하는 주변 디바이스의 드라이버는 일부 UART에서 작동하지만 다른 UART에서는 작동하지 않는 이 IOCTL을 사용하지 않아야 합니다. 이 IOCTL은 주로 UART를 테스트를 위해 루프백 모드로 구성하는 데 사용되지만 UART에 루프백 모드를 지원하는 MCR이 있는 경우에만 사용됩니다.

MCR의 예제 레이아웃은 GitHub의 직렬 드라이버 샘플 에서 Serial.h 헤더 파일의 MCR 비트(SERIAL_MCR_DTR~SERIAL_MCR_LOOP)의 정의를 참조하세요.

요구 사항

요구 사항
헤더 ntddser.h(Ntddser.h 포함)

추가 정보

IOCTL_SERIAL_GET_MODEM_CONTROL