为什么最新的WDK默认不支持Windows 7?

问题描述 投票:0回答:3

我下载了针对 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)' &gt; '$(TargetPlatformVersion_CO)' and '$(TargetVersion)' !='$(LatestTargetVersion)' " />

然后尝试再次编译..瞧 - 一切正常。这意味着驱动程序适用于 Windows 10 之前的所有操作系统。

我确实明白我做错了。所以,我的问题是:

  1. 如果一切正常,为什么 Visual Studio 开发人员不让我们为 Windows 7 构建驱动程序?
  2. 从 Windows 7 开始,为所有操作系统构建驱动程序的正确方法是什么?

稍后添加:

我想也许,例如,最新的WDK有更多Windows 7中缺少的API函数。事实证明,如果我们仔细编码,检查所有调用的兼容性,那么编译应该不会有问题。

c++ visual-studio
3个回答
2
投票

根据此

要面向 Windows 8.1、Windows 8 和 Windows 7,您需要 安装旧版 WDK 和旧版 Visual Studio 在同一台机器上或在单独的机器上。有关旧套件的链接, 请参阅其他 WDK 下载


2
投票

问题#1 - 你最好问微软。 问题#2 - 您可以并排安装多个 SDK 和 WDK 版本。要面向 Windows 7,请安装 Windows 8.1 SDK 和 WDK。


0
投票

根据此页面

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 仅允许您从命令行构建。
© www.soinside.com 2019 - 2024. All rights reserved.