스트리밍 미니드라이버

참고 이 섹션에서는 오래된Stream.sys클래스 드라이버에 대해 자세히 설명합니다. Microsoft Windows XP 릴리스를 통해 Microsoft는 기존 드라이버에 대해서만 Stream.sys 지원합니다. 이 릴리스를 기준으로 공급업체는 AVStream 클래스 드라이버 모델을 사용하여 새로운 비디오 또는 오디오/비디오 멀티미디어 드라이버를 개발하는 것을 고려할 것을 권장합니다. AVStream 개요에서 세부 정보를 참조하세요. 오디오 전용 드라이버를 개발하는 경우 Microsoft에서 제공하는 Portcls.sys 클래스 드라이버 아래에 오디오 미니포트 드라이버를 작성해야 합니다. 자세한 내용은 오디오 미니포트 드라이버를 참조하세요.

공급업체는 Microsoft에서 제공하는 Stream.sys 클래스 드라이버에서 실행되는 미니드라이버를 제공하여 비디오 전용 또는 오디오/비디오 디바이스를 지원할 수 있습니다. 이 설명서에서는 Stream.sys 공급업체에서 제공하는 미니 드라이버를 스트리밍 미니드라이버라고 합니다.

instance 경우 스트리밍 미니드라이버에서 비디오 캡처 장치 및 DVD 플레이어를 지원받을 수 있습니다. 기술 관련 정보는 비디오 캡처 장치DVD 디코더 미니드라이버를 참조하세요.

스트리밍 미니드라이버에서는 커널 스트리밍 의미 체계를 지원합니다. 이 문서를 사용하려면 드라이버 개발자는 커널 스트리밍에 설명된 대로 기본 커 스트리밍 개념을 잘 알고 있어야 합니다.

스트림 클래스 드라이버는 운영 체제와 상호 작용의 많은 측면을 처리하여 스트리밍 디바이스에 대한 하드웨어 드라이버를 더 간단하게 작성할 수 있도록 설계되었습니다.

  • 미니 드라이버는 스트림 클래스 드라이버가 대신 동기화를 처리하도록 허용할 수 있습니다. 예를 들어 스트림 클래스 드라이버는 필요에 따라 미니 드라이버에 대한 I/O 요청을 직렬화할 수 있습니다. 클래스 드라이버가 동기화를 처리하도록 허용하면 미니드라이버 다중 프로세서가 안전하지만 비진입자가 됩니다. 이는 로우 엔드에서 중형 하드웨어에 적합합니다.

  • 클래스 드라이버는 파일 작업을 자동으로 동기화합니다. 예를 들어 스트림 및 디바이스의 열기는 뮤텍스, 세마포 또는 이벤트를 사용하여 미니드라이버 없이 올바르게 직렬화됩니다.

  • 클래스 드라이버는 미니 드라이버에서 커널 스트리밍 의미 체계의 구현을 추상화합니다.

  • 클래스 드라이버는 PnP 관리자와의 모든 상호 작용을 처리합니다. 예:

    • 클래스 드라이버는 미니 드라이버 대신 기능 디바이스 개체를 만듭니다.
    • 클래스 드라이버는 리소스 구성(예: 포트 주소 변환, 메모리 범위 변환 및 매핑, 인터럽트 연결)을 관리합니다.
    • 클래스 드라이버는 IRP_MN_START_DEVICE 또는 IRP_MN_STOP_DEVICE 같은 PnP IRP를 처리합니다.
  • 모든 하위 수준 버퍼 관리는 클래스 드라이버에서 처리됩니다.

    • 필요한 경우 DMA 어댑터 개체를 할당합니다.
    • DMA에 대한 버퍼 매핑 및 분산/수집 목록 작성
    • DMA 및 PIO 모두에 대해 버퍼를 올바르게 잠그고 플러시합니다.
  • 모든 IOCTL 매개 변수 유효성 검사는 클래스 드라이버에 의해 수행됩니다.

  • 모든 요청은 watchdog 타이머가 있는 클래스 드라이버에 의해 시간이 초과됩니다.

  • 미니 드라이버는 디바이스 개체를 만들지 않지만 필요에 따라 클래스 드라이버의 디바이스 개체를 공유합니다. 이렇게 하면 시스템 리소스가 저장됩니다.

  • 어댑터당 하나의 디바이스 개체만 만들어집니다. 어댑터에서 지원하는 여러 하위 서비스( 스트림이라고 함)는 커널 스트리밍 핀으로 표시됩니다.