流微型驱动程序

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

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

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

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

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

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

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

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

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

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

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

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

  • 微型驱动程序不会创建设备对象,而是根据需要共享类驱动程序的设备对象。 这样可以节省系统资源。

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