SPB 프레임워크 확장(SpbCx)

SPB 프레임워크 확장(SpbCx)은 KMDF(커널 모드 드라이버 프레임워크)에 대한 시스템 제공 확장입니다. SpbCx는 SPB 컨트롤러 드라이버함께 작동하여 I2C 또는 SPI와 같은 간단한 SPB(주변 버스)에 연결된 주변 장치에서 I/O 작업을 수행합니다.

SPB 컨트롤러 드라이버는 모든 하드웨어 관련 작업을 수행합니다. 이러한 작업에는 SPB 컨트롤러의 하드웨어 레지스터에 액세스하여 컨트롤러를 구성하고 SPB에 연결된 주변 장치와 버스 전송을 시작하는 작업이 포함됩니다.

SpbCx는 SPB 컨트롤러 디바이스에 공통적인 처리 작업을 수행합니다. 특히 SpbCx는 SPB 컨트롤러에 대한 I/O 요청 큐를 관리합니다. 이러한 큐에는 버스에 연결된 주변 디바이스에 대한 I/O 요청이 포함됩니다. SPB 컨트롤러용 하드웨어 공급업체는 SPB 컨트롤러 드라이버를 공급하여 이러한 요청을 처리하는 데 필요한 모든 하드웨어 관련 작업을 수행합니다.

SpbCx와 SPB 컨트롤러 드라이버 간의 책임 구분은 다음과 같습니다.

  • SpbCx는 SPB 컨트롤러 디바이스 클래스의 모든 멤버에 공통적인 제네릭 함수를 관리합니다. SpbCx는 컨트롤러 드라이버에 대한 기본 요청 처리 및 흐름 제어의 대부분을 제공합니다. Windows 8부터 SpbCx는 Windows 운영 체제의 받은 편지함 구성 요소입니다.

  • SPB 컨트롤러 드라이버는 SPB 컨트롤러 디바이스에서 하드웨어 관련 함수를 관리합니다. 하드웨어 공급업체는 SPB 컨트롤러 디바이스에 컨트롤러 드라이버를 제공합니다.

SpbCx 및 SPB 컨트롤러 드라이버는 커널 모드에서 실행됩니다. SpbCx는 프레임워크 확장이며 SPB 컨트롤러 드라이버는 KMDF 드라이버입니다. SPB 컨트롤러 드라이버는 SpbCx DDI(디바이스 드라이버 인터페이스)의 메서드를 호출하여 SPB 관련 작업을 수행하고 KMDF 메서드를 호출하여 더 일반적인 다른 드라이버 함수를 수행합니다. KMDF 드라이버를 빌드하는 방법에 대한 자세한 내용은 프레임워크 기반 드라이버 빌드 및 로드를 참조 하세요.

SPB 컨트롤러 드라이버는 SpbCx 스텁 라이브러리 Spbcx.lib의 DDI 진입점에 정적으로 연결됩니다. 런타임에 이 라이브러리는 DDI를 구현하는 프레임워크 확장 모듈 Spbcx.sys 동적으로 연결하는 데 필요한 드라이버 버전 협상을 수행합니다. 특정 버전의 Spbcx.sys 필요한 SPB 컨트롤러 드라이버는 버전 번호가 더 높은 Spbcx.sys 버전에 안전하게 연결할 수 있습니다. 그러나 이 드라이버는 버전 번호가 낮은 Spbcx.sys 버전에 연결할 수 없습니다. SpbCx I/O 요청 인터페이스도 마찬가지로 이전 버전과 호환됩니다.

하드웨어 공급업체에는 SpbCx를 사용하지 않는 모놀리식 SPB 컨트롤러 드라이버를 작성할 수 있는 옵션이 있지만 이렇게 하려면 상당한 노력이 필요합니다. 이에 비해 SpbCx를 사용하는 컨트롤러 드라이버는 더 쉽게 개발할 수 있으며 일반적으로 더 안정적입니다.