编写 WDM 驱动程序

本部分讨论 Microsoft Windows 驱动程序模型 (WDM) 体系结构。 此体系结构从 Windows 2000 开始,以增强以前的Windows NT设备驱动程序。

注意不支持 Windows 2000 之前的基于 Windows NT 的操作系统版本的驱动程序,应更新这些驱动程序。 WDM 体系结构不支持非基于Windows NT的操作系统 ((例如 Windows 98) )的驱动程序,应重写此类驱动程序。

本部分分为三个部分:

  • Windows 驱动程序模型 描述了 Windows 驱动程序模型 (WDM) ,包括 WDM 驱动程序的类型、设备配置和 WDM 版本控制。

  • 设备对象和设备堆栈 描述设备对象和设备堆栈。 该部分包括有关物理设备对象 (PDO) 、功能设备对象 (FDO) 以及筛选设备对象 (筛选器DO) 的信息。 驱动程序通常由一组协同工作的设备对象生成。 这组设备对象称为 堆栈。 堆栈可帮助你了解与驱动程序的信息流,以及驱动程序的不同部分内部通信的方式。

  • 内核模式驱动程序组件 描述必须实现哪些例程才能具有功能驱动程序,以及哪些例程是可选的。

    设备驱动程序是必须集成到操作系统中的一组软件代码。 若要完成此集成,必须在驱动程序中编写一组处理程序例程,用于处理来自操作系统的调用。 这些例程可以是简单的函数调用,但其中许多例程实现 I /O 请求数据包 的处理 (IRP) ,从而促进驱动程序和操作系统之间的通信。

注意 WDM 驱动程序还可以使用 Windows 驱动程序框架 (WDF) 库,使设备驱动程序的某些部分更易于编写。 具体而言,内核模式驱动程序可以使用Kernel-Mode驱动程序框架 (KMDF) ,这是 WDF 的一部分。 有关内核模式驱动程序的 KMDF 的详细信息,请参阅 内核模式驱动程序框架概述。 请注意,KMDF 不会替换 WDM。 仍必须了解 WDM 的许多部分才能编写 KMDF 驱动程序。