SerCxGetRingBufferUtilization 함수(sercx.h)
SerCxGetRingBufferUtilization 메서드를 사용하면 직렬 컨트롤러 드라이버가 현재 직렬 포트에서 받은 데이터로 채워지는 미리 입력 링 버퍼의 양을 확인할 수 있습니다.
통사론
void SerCxGetRingBufferUtilization(
[in] WDFDEVICE Device,
[out, optional] PULONG BytesUsed,
[out, optional] PULONG BufferSize
);
매개 변수
[in] Device
직렬 컨트롤러를 나타내는 프레임워크 디바이스 개체에 대한 WDFDEVICE 핸들입니다.
[out, optional] BytesUsed
수신된 데이터를 저장하는 데 사용되는 미리 입력 링 버퍼에 현재 포함된 읽지 않은 데이터의 바이트 수입니다.
[out, optional] BufferSize
수신된 데이터를 저장하는 데 사용되는 미리 입력 링 버퍼의 크기(바이트)입니다.
반환 값
없음
발언
직렬 컨트롤러 드라이버는 이 함수를 호출하여 미리 입력 링 버퍼에서 사용할 수 있는 스토리지 공간을 결정합니다. SerCx(직렬 컨트롤러 확장)는 현재 처리 중인 클라이언트의 읽기 요청이 없을 때 직렬 컨트롤러 드라이버가 직렬 포트에서 수신하는 데이터를 포함하도록 이 버퍼를 유지 관리합니다. 이 함수는 드라이버가 XON/XOFF(소프트웨어 흐름 제어)를 정확하게 수행하는 데 필요한 정보를 제공합니다.
소프트웨어 흐름 제어를 구현하기 위해 직렬 컨트롤러 드라이버는 미리 입력 링 버퍼에서 사용할 수 있는 공간의 양을 모니터링합니다. 사용 가능한 공간(바이트)은 BufferSize - BytesUsed같습니다. 사용 가능한 공간이 클라이언트에서 지정한 임계값 아래로 떨어지면 XoffLimit가
SerCx는 현재 흐름 제어 및 핸드셰이크 설정의 컨텍스트에서 미리 입력 링 버퍼에서 사용 가능한 공간을 평가합니다. 미리 입력 링 버퍼가 완전히 비워지면 SerCx는 드라이버가 XON을 보내고 데이터 수신을 다시 시작할 수 있도록 드라이버의 EvtSerCxReceive 콜백 함수를 호출합니다. EvtSerCxReceive 함수는 SerCxGetRingBufferUtilization 호출하여 XON을 보낼지 여부를 결정할 수 있습니다.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8부터 사용할 수 있습니다. |
대상 플랫폼 | 보편적 |
헤더 | sercx.h |
IRQL |
<= DISPATCH_LEVEL |