我下载了针对 Windows 7 的驱动程序(在“.vcxproj”中具有选项“TargetVersion”==“Windows 7”)。我还安装了 Visual Studio 2022 Community、最新的 SDK 和 DDK(适用于 Windows 11)来编译它。
当我按“构建解决方案”时,出现错误:
Windows7 is not a supported OS Version
我要打开文件:
C:\Program Files (x86)\Windows Kits\10\build\10.0.22621.0\WindowsDriver.Common.targets
并评论以下行:
<Error Text=" '$(TargetVersion)' is not a supported OS Version"
Condition="'$(WindowsTargetPlatformVersion)' > '$(TargetPlatformVersion_CO)' and '$(TargetVersion)' !='$(LatestTargetVersion)' " />
然后尝试再次编译..瞧 - 一切正常。这意味着驱动程序适用于 Windows 10 之前的所有操作系统。
我确实明白我做错了。所以,我的问题是:
稍后添加:
我想也许,例如,最新的WDK有更多Windows 7中缺少的API函数。事实证明,如果我们仔细编码,检查所有调用的兼容性,那么编译应该不会有问题。
问题#1 - 你最好问微软。 问题#2 - 您可以并排安装多个 SDK 和 WDK 版本。要面向 Windows 7,请安装 Windows 8.1 SDK 和 WDK。
根据此页面:
2022年5月,微软发布了Windows Driver Kit版本 (WDK),支持Visual Studio (VS) 2022。这个版本被称为 作为 Windows 11 版本 22H2 WDK。这个新版本的 WDK 是 仅在 VS 2022 上支持。它不能与 VS 2019 一起使用。
最新的 WDK 版本中潜藏着一些令人意外的意外情况。 具体来说:
- 不支持构建针对 Windows 10 之前的任何 Windows 版本的驱动程序。这意味着无法再使用 用于构建支持 Windows 7 或 Windows 8 的驱动程序的最新 WDK,或者 Windows 8.1.
- 不支持为任何平台(x86 或 ARM)或任何操作系统版本(包括 32 位 Windows 10)构建 32 位驱动程序。
微软希望我们继续使用“旧”Windows 11 WDK 托管在 VS 2019 上,为没有的平台构建驱动程序 不再支持。 Microsoft 向我们保证“并排”(SxS) 安装 VS 2019 和旧版 Windows 11 WDK 和 VS 2022 以及 新的 Windows 11 22H2 可以运行并受支持。
可能的解决方案:
- 您是否有需要使用 VS 2022 的技术原因?其他需要 VS 2022 的项目?你渴望新的 VS 2022 特征?如果是这样,您仍然需要支持 32 位或 Win7/Win8/win8.1 目标,您将需要使用 SxS 安装 VS 2019 和 VS 2022 及其最新版本 关联的 WDK。
- 或者,您仍然需要支持Win7/Win8/Win8.1和32位目标,但您可以放弃更新到最新最好的版本 VS?在这种情况下,你可以继续使用 VS 2019 并 较旧的 WDK。
- 考虑将 VS 开发环境(和 WDK)升级到 VS 2022 和 22H2 WDK,并构建 32 位或 使用 Enterprise WDK (EWDK) 的低级操作系统版本。这个选项 leaves 可以帮助您解决维护 SxS VS/WDK 的任何潜在问题 环境可能会带来。就可用性而言,唯一的“成本”是 Enterprise WDK 仅允许您从命令行构建。