IOCTL_SERIAL_LSRMST_INSERT IOCTL(ntddser.h)

IOCTL_SERIAL_LSRMST_INSERT 요청은 수신 데이터 스트림의 줄 상태 및 모뎀 상태 대한 정보 삽입을 사용하거나 사용하지 않도록 설정합니다. LSRMST 삽입을 사용하도록 설정하면 드라이버는 지원되는 이벤트 유형에 대한 이벤트 정보를 삽입합니다. 이벤트 정보에는 이벤트 헤더 와 이벤트별 데이터가 포함됩니다.

이벤트 헤더에는 클라이언트에서 지정한 이스케이프 문자와 이벤트 유형을 나타내는 SERIAL_LSRMST_XXX 상수가 포함됩니다. 드라이버는 다음 이벤트 유형을 지원합니다.

SERIAL_LSRMST_LSR_DATA
줄 상태 변경이 발생했습니다. 직렬 컨트롤러 드라이버는 이벤트 헤더 뒤에 이벤트별 데이터를 삽입합니다. 이는 줄 상태 레지스터의 값과 줄 상태 변경이 처리될 때 수신 하드웨어에 있는 문자의 값입니다.
SERIAL_LSRMST_LSR_NODATA
줄 상태 변경이 발생했지만 수신 버퍼에서 데이터를 사용할 수 없었습니다. 직렬 컨트롤러 드라이버는 이벤트 헤더 뒤에 이벤트별 데이터를 삽입합니다. 이는 줄 상태 변경이 처리될 때 등록할 상태 줄의 값입니다.
SERIAL_LSRMST_MST
모뎀 상태 변경이 발생했습니다. 직렬 컨트롤러 드라이버는 모뎀 상태 변경이 처리될 때 등록할 상태 모뎀의 값인 이벤트 헤더 뒤에 이벤트별 데이터를 삽입합니다.
SERIAL_LSRMST_ESCAPE
디바이스에서 받은 수신 데이터 스트림의 다음 문자가 클라이언트 지정 이스케이프 문자와 동일하다는 것을 나타냅니다. 직렬 컨트롤러 드라이버는 이벤트 헤더를 삽입합니다. 이벤트별 데이터가 없습니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

ASSOCIATedIrp.SystemBuffer 멤버는 이스케이프 문자로 사용할 클라이언트 할당 UCHAR 입력 값을 가리킵니다. 이스케이프 문자가 0이 아닌 경우 삽입이 활성화되고 직렬 드라이버에서 지정된 이스케이프 문자를 사용합니다. 그렇지 않으면 삽입이 비활성화됩니다.

입력 버퍼 길이

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

출력 버퍼

없음

출력 버퍼 길이

없음

상태 블록

요청이 성공하면 정보 멤버가 UCHAR의 크기(바이트)로 설정됩니다. 그렇지 않으면 정보가 0으로 설정됩니다.

Status 멤버는 직렬 디바이스 제어 요청에 대한 일반 상태 값 중 하나로 설정됩니다. STATUS_INVALID_PARAMETER 상태 지정된 이스케이프 문자가 XON(전송 중) 또는 XOFF(전송 해제) 문자와 동일하거나 핸드셰이크 흐름 제어를 사용하여 오류 대체를 사용하도록 설정되었음을 나타냅니다.

요구 사항

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