驱动程序包
通常支持许多版本的 Windows 操作系统。 作为支持操作系统多个版本的一部分,驱动程序包可能需要在不同版本的操作系统上有不同的行为,以便使用新功能或满足新操作系统版本的新要求。 例如,驱动程序包可能需要在特定版本之后的操作系统上有不同的行为,以满足
Windows驱动程序
的要求。 以下部分介绍如何在驱动程序包的
INF 文件
中以及驱动程序包内的二进制文件的运行时行为中具有不同的行为。
INF 支持
INF 中
INF Models 节
上的 TargetOSVersion 装饰允许 INF 作者为不同版本的操作系统提供不同的安装说明和设置。
有关详细信息,请参阅
将平台扩展与操作系统版本相结合
。
运行时支持
如果尝试在运行时更改行为以支持多个操作系统版本,建议尽可能检查功能或 API 可用性,而不是尝试检查代码是否在特定操作系统版本或更高版本上运行。 例如,如果有一个 API,你希望在其可用时使用它,则可以尝试动态查找它,而不是静态地链接到它。 如果能够找到它,则可以使用它,但是,如果当前正在运行的环境中不存在它,则可以回退到某个替代行为。
对于内核模式,请参阅
为不同版本的 Windows 编写驱动程序
,以详细了解如何从单个驱动程序支持多个版本的 Windows。
在用户模式下,可以将
LoadLibraryEx
与
GetProcAddress
一起使用,以检查要使用的特定 API 是否在当前正在运行的环境中可用,并获取要用于调用该 API 的函数指针。 有关详细信息,请参阅
运行时动态链接
和
使用运行时动态链接
。