创建驱动程序项目时,请指定最低目标操作系统,该操作系统是运行驱动程序的 Windows 的最低版本。 例如,可以指定 Windows 7 为最低目标操作系统。 在这种情况下,驱动程序会在 Windows 7 和更高版本的 Windows 上运行。
设计将在多个版本的 Windows 上运行的驱动程序时,最简单的方法是允许驱动程序仅使用运行该驱动程序的所有版本的 Windows 共同的 DDI 函数和结构。 在此情形下,将最低目标操作系统设置为驱动程序将支持的最低 Windows 版本。
例如,若要支持从 Windows 7 开始的所有版本的 Windows,应执行以下操作:
- 设计并实现驱动程序,以便该驱动程序仅使用 Windows 7 中提供的那些功能。
- 生成驱动程序时,将 Windows 7 指定为最低目标操作系统。
虽然此过程很简单,但它可能会限制驱动程序仅使用更高版本的 Windows 上提供的功能子集。 在许多情况下,你会希望在更新的操作系统功能可用时使用它,以提高安全性、提高可靠性或启用更新的功能。
内核模式驱动程序可以动态确定操作系统提供的 API 是否可用,或者驱动程序正在运行于哪个版本的Windows 上,并选择使用该运行时环境中可用的功能。 例如,必须支持从 Windows 7 开始的所有 Windows 版本的驱动程序可以在运行时确定它在哪个 Windows 版本上运行。 如果驱动程序在 Windows 7 上运行,则它只能使用 Windows 7 支持的 DDI 函数。 但是,同一个驱动程序可以使用 Windows 8 独有的其他 DDI 函数,例如,当其运行时检查确定这些 API 当前存在,或者确定它在 Windows 8 上运行时。
内核模式驱动程序可以使用 MmGetSystemRoutineAddress 或 MmGetSystemRoutineAddressEx 函数动态检查它想要使用的特定 API 是否在当前运行时环境中可用,并获取要用于调用该 API 的函数指针。
示例:确定 API 可用性并有条件地调用 API
内核模式驱动程序可以使用 RtlVerifyVersionInfo 函数动态检查当前运行的 Windows 版本。
以下示例检测当前运行的操作系统版本是否大于或等于版本 10.0,并检测内部版本号是否大于或等于内部版本 22000(Windows 11 版本 21H2)。
到此这篇windows驱动开发入门网盘(windows驱动开发视频教程)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/goyykf/33764.html