다음을 통해 공유


SerCx2-Based 직렬 컨트롤러 드라이버의 기능

SerCx2는 직렬 컨트롤러 드라이버를 지원하는 특수 기능이 있는 KMDF(Kernel-Mode Driver Framework)의 확장입니다. KMDF에 대한 자세한 내용은 WDF를 사용하여 드라이버 A SerCx2 기반 직렬 컨트롤러 드라이버 개발은 KMDF의 메서드 및 콜백을 사용하여 일반 드라이버 작업을 수행하고 SerCx2와 통신하여 직렬 컨트롤러 드라이버와 관련된 작업을 수행하는 KMDF 드라이버입니다.

일반적으로 직렬 컨트롤러는 16550 UART(유니버설 비동기 수신기/송신기) 디바이스와 하드웨어 수준에서 호환됩니다. UART는 개인 컴퓨팅 초기부터 데스크톱 PC의 사례에 있는 직렬 포트를 제어하는 데 사용되었습니다. 최근에는 SoC(System on a Chip) 통합 회로에 직렬 컨트롤러가 포함되어 다른 통합 회로와 낮은 핀 개수 통신을 제공합니다. SoC 기반 하드웨어 플랫폼에서 클라이언트가 I/O 요청을 보내는 "직렬 포트"는 단순히 SoC 칩의 직렬 인터페이스 핀 집합입니다. 자세한 내용은 직렬 컨트롤러 드라이버 개요를 참조하세요.

Microsoft는 유사한 하드웨어 기능이 있는 직렬 컨트롤러 제품군에 직렬 컨트롤러 드라이버를 제공할 수 있습니다. 또는 특수 기능이 있는 직렬 컨트롤러용 하드웨어 공급업체는 이러한 기능을 지원하는 사용자 지정 직렬 컨트롤러 드라이버를 제공할 수 있습니다.

직렬 컨트롤러 드라이버는 DDI(디바이스 드라이버 인터페이스)를 통해 SerCx2와 통신합니다. SerCx2 DDI에는 다음 두 부분이 있습니다.

  • SerCx2에서 구현되고 직렬 컨트롤러 드라이버에서 호출되는 드라이버 지원 메서드 집합입니다.
  • 직렬 컨트롤러 드라이버에 의해 구현되고 SerCx2에서 호출되는 이벤트 콜백 함수 집합입니다.

SerCx2 DDI의 메서드 및 콜백에 대한 자세한 설명은 sercx.h 헤더 topics 버전 2 SerCx2(직렬 프레임워크 확장) 참조를 참조하세요.

하드웨어 공급업체에는 독립 실행형 직렬 컨트롤러 드라이버를 작성하는 옵션이 있지만 이렇게 하려면 상당한 노력이 필요합니다. 이에 비해 SerCx2를 사용하는 직렬 컨트롤러 드라이버를 개발하는 것이 더 쉽고 일반적으로 훨씬 작고 신뢰할 수 있는 드라이버가 생성됩니다.

SerCx2는 컨트롤러 드라이버를 대신하여 다음 작업을 관리합니다.

  • 읽기 및 쓰기 작업
  • 직렬 I/O 시간 제한 검색
  • 하드웨어 이벤트
  • 시스템 DMA 전송(시스템 DMA 트랜잭션이 지원되는 경우)
  • 저전력 디바이스 상태로 전환
  • I/O 요청 취소(사용자 지정 I/O 트랜잭션 중 제외)

읽기 및 쓰기 작업을 관리하기 위해 SerCx2는 클라이언트의 IRP_MJ_READIRP_MJ_WRITE 요청을 직렬 컨트롤러 드라이버가 처리할 비교적 간단한 I/O 트랜잭션으로 변환합니다. 자세한 내용은 SerCx2 I/O 트랜잭션을 참조하세요.

SerCx2는 Sercx2.sys라는 구성 요소로 Windows에 포함되어 있습니다. 직렬 컨트롤러 드라이버는 SerCx2 라이브러리인 Sercxstubs.lib(버전 2.0)에 정적으로 연결되며 런타임에 Sercx2.sys 통신합니다. SerCx2 DDI는 2.0\Sercx.h 헤더 파일에 정의되어 있습니다. Sercxstubs.lib 및 Sercx.h는 Windows 8.1 Windows 드라이버 키트에서 사용할 수 있습니다.