流微型驱动程序

注意 本部分详细介绍了 过时的Stream.sys类 驱动程序。 随着 Microsoft Windows XP 的发布,MicrosoftStream.sys仅支持现有驱动程序。 自此版本起,Microsoft 建议供应商考虑使用 AVStream 类驱动程序模型开发新的视频或音频/视频多媒体驱动程序。 请参阅 AVStream 概述中的详细信息。 如果开发仅音频驱动程序,应在 Microsoft 提供的音频微型端口驱动程序下编写Portcls.sys驱动程序。 有关详细信息,请参阅 音频微型端口驱动程序

供应商可以通过提供在 Microsoft 提供的类驱动程序下运行的微型驱动程序来支持仅视频或 Stream.sys 设备。 在本文档中,供应商提供的微型 驱动程序Stream.sys流 式处理 微型驱动程序

例如,流式处理微型驱动程序可以支持视频捕获设备和 DVD 播放器。 有关特定于技术的信息,请参阅 视频捕获设备和DVD 解码器微型驱动程序

流式处理微型驱动程序支持内核流式处理语义。 若要使用本文档,驱动程序开发人员应熟悉内核流式处理的基本概念,如内核流式处理中介绍。

流类驱动程序旨在处理与操作系统交互的许多方面,使为流式处理设备编写硬件驱动程序更简单。

  • 微型驱动程序可以允许流类驱动程序代表它处理同步。 例如,流类驱动程序可以选择序列化微型驱动程序的 I/O 请求。 允许类驱动程序处理同步会使微型驱动程序多处理器安全,但不可实现。 这适用于低端到中端硬件。

  • 类驱动程序自动同步文件操作。 例如,流和设备打开会正确序列化,而无需使用互斥、信号量或事件对微型驱动程序进行序列化。

  • 类驱动程序从微型驱动程序抽象化内核流式处理语义的实现。

  • 类驱动程序处理与 PnP 管理器的所有交互。 例如: 。

    • 类驱动程序代表微型驱动程序创建功能设备对象。
    • 类驱动程序管理资源配置 (例如转换端口地址、转换和映射内存范围,以及将中断) 。
    • 类驱动程序处理 PnP IRP,例如 IRP_MN_START_DEVICE 或IRP_MN_STOP_DEVICE
  • 所有低级别缓冲区管理都由类驱动程序处理:

    • 分配 DMA 适配器对象(如有必要)。
    • 映射缓冲区并生成 DMA 的散点/收集列表。
    • 正确锁定和刷新 DMA 和 PIO 的缓冲区。
  • 所有 IOCTL 参数验证都由类驱动程序执行。

  • 所有请求都由类驱动程序使用监视器计时器计时。

  • 微型驱动程序不会创建设备对象,但会在必要时共享类驱动程序的设备对象。 这将保存系统资源。

  • 每个适配器只创建一个设备对象。 适配器支持的 (称为) 子设备由内核流式处理引脚表示。