Windows驱动模型(WDM)详解与服务概念

需积分: 3 1 下载量 55 浏览量 更新于2024-08-02 收藏 260KB PPT 举报
"Windows Driver Model (PPT) 演讲稿" Windows Driver Model (WDM) 是微软在Windows操作系统中引入的一种驱动程序模型,主要应用于Windows 2000、Windows XP等系统。该模型旨在提高驱动程序的兼容性和稳定性,同时也允许驱动程序在用户模式和内核模式之间进行交互。 1. **驱动程序的要求** 开发Windows驱动程序需要熟悉C和C++编程语言,同时对Windows编程有一定了解。这是因为驱动程序需要与操作系统内核紧密合作,因此需要开发者具备处理底层操作的能力。 2. **驱动模型的发展** - NT4:采用Kernel Mode Driver (KMD) 模型。 - Win95:使用Virtual Device Driver (VxD)。 - Win98/Me:支持VxD和WDM。 - Win2000/XP:同时支持KMD和WDM。WDM在这些系统中成为主流,因为它能更好地支持即插即用设备和电源管理。 3. **驱动程序的角色** 驱动程序是应用程序和硬件之间的桥梁。它们运行在内核模式,可以直接访问I/O端口和物理内存,从而控制硬件设备。 4. **驱动构建环境** 开发Windows驱动通常使用Visual Studio 6作为编译器、链接器和编辑器,以及Windows 98/Me/2000/XP的Device Driver Kit (DDK),它包含必要的库和头文件。 5. **驱动加载方式** - 静态加载:在操作系统启动时加载,仅限于Windows 98/Me。驱动程序需要被复制到 `<windir>\system32\drivers` 目录,并在注册表中添加相应键值。 - 动态加载:在应用程序运行时加载。Windows 2000/XP 支持静态和动态加载。 6. **服务的概念** 服务是Windows 2000/XP中的特殊程序,独立于多用户会话运行。这意味着即使没有用户登录,服务也可以启动并运行。服务通常用于需要后台持续运行的任务,例如设备驱动或系统功能。 7. **创建服务** 创建服务涉及在`HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services`下创建服务注册表项,设置如ErrorControl、Type和Start等关键值,然后重启计算机以使更改生效。 8. **驱动服务类型** - 应用程序服务:服务于应用程序,通常在用户模式下运行,与用户界面交互。 - 驱动服务:主要用于动态加载,直接与硬件交互,运行在内核模式。 总结起来,Windows Driver Model 提供了一套统一的接口和框架,使得驱动程序开发更加规范,同时支持不同类型的驱动服务以满足各种系统需求。无论是静态还是动态加载,服务还是应用,WDM都在确保系统稳定性和兼容性方面发挥了关键作用。