支持多个操作系统版本

驱动程序包通常支持许多版本的 Windows 操作系统。 作为支持操作系统多个版本的一部分,驱动程序包可能需要在不同版本的操作系统上有不同的行为,以便使用新功能或满足新操作系统版本的新要求。 例如,驱动程序包可能需要在特定版本之后的操作系统上有不同的行为,以满足 Windows驱动程序的要求。 以下部分介绍如何在驱动程序包的 INF 文件中以及驱动程序包内的二进制文件的运行时行为中具有不同的行为。

INF 支持

INF 中 INF Models 部分上的 TargetOSVersion 装饰允许 INF 作者为不同版本的操作系统提供不同的安装说明和设置。

有关详细信息,请参阅将平台扩展与操作系统版本相结合

运行时支持

如果尝试在运行时更改行为以支持多个操作系统版本,建议尽可能检查功能或 API 可用性,而不是尝试检查代码是否在特定操作系统版本或更高版本上运行。 例如,如果有一个 API,你希望在其可用时使用它,则可以尝试动态查找它,而不是静态地链接到它。 如果能够找到它,则可以使用它,但是,如果当前正在运行的环境中不存在它,则可以回退到某个替代行为。

内核模式

对于内核模式,请参阅为不同版本的 Windows 编写驱动程序,以详细了解如何从单个驱动程序支持多个版本的 Windows。

用户模式

在用户模式下,可以将 LoadLibraryExGetProcAddress 一起使用,以检查要使用的特定 API 是否在当前正在运行的环境中可用,并获取要用于调用该 API 的函数指针。 有关详细信息,请参阅运行时动态链接使用运行时动态链接