다음을 통해 공유


스트리밍 미니 드라이버

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

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

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

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

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

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

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

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

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

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

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

  • 모든 요청은 클래스 드라이버에 의해 Watchdog Timer로 타이머가 설정됩니다.

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

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