Как создать драйверы устройств Windows 11 для ARM64 в системе ARM64?
Как создать драйверы устройств Windows 11 для ARM64 в системе ARM64?
С использованием:
- Windows 11 21H2 на виртуальной машине ARM64 (хост: MacBook M1)
- Визуальная Студия 17.5.2
- Комплект драйверов для Windows 10.0.22621.382
У меня есть простой драйвер WDM для Windows 11.
- Он изначально собирается и работает для x64 на компьютере с Windows 11 x64.
- Он выполняет кросс-компиляцию в Windows 11 x64 для целевого ARM64. При перемещении сгенерированных двоичных файлов на машину ARM64 это работает.
- Однако собственная сборка драйвера в системе ARM64 не удалась.
Создание связанных приложений пользовательского пространства работает на ARM64. Только драйвер собрать не получается.
Сообщение об ошибке сборки
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170\Microsoft.CppBuild.targets(442,5):
error MSB8020: The build tools for WindowsKernelModeDriver10.0 (Platform Toolset = 'WindowsKernelModeDriver10.0') cannot be found.
To build using the WindowsKernelModeDriver10.0 build tools, please install WindowsKernelModeDriver10.0 build tools.
Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution,
and then selecting "Retarget solution".
Похоже, что WDK неправильно установлен на машине ARM64.
Сборка драйверов Windows для ARM64 описана здесь:
- https://learn.microsoft.com/en-us/windows-hardware/drivers/develop/building-arm64-drivers
- https://learn.microsoft.com/en-us/windows-hardware/drivers/download-the-wdk
Однако в этой статье никогда четко не упоминается, на каком типе системы (x64 или ARM64) установлены VS и WDK. На самом деле, выполнение этого на машине x64 и кросс-билдинг для ARM64 работают.
На ARM64 установка WDK работает до момента начала интеграции с VS, в конце установки. Сообщение об ошибке: «Это расширение невозможно установить ни в один из установленных на данный момент продуктов». Перезапуск этой установки вручную с помощью «C:\Program Files (x86)\Windows Kits\10\Vsix\VS2022\10.0.22621.0\WDK.vsix» дает тот же результат.
В журнале установки есть следующее:
3/20/2023 5:51:24 PM - Extension Details...
3/20/2023 5:51:24 PM - Identifier : Microsoft.Windows.DriverKit
3/20/2023 5:51:24 PM - Name : Windows Driver Kit
3/20/2023 5:51:24 PM - Author : Microsoft Corporation
3/20/2023 5:51:24 PM - Version : 10.0.22621.0
3/20/2023 5:51:24 PM - Description : A set of extensions that integrates Windows Driver development into Visual Studio.
3/20/2023 5:51:24 PM - Locale : en-US
3/20/2023 5:51:24 PM - MoreInfoURL :
3/20/2023 5:51:24 PM - InstalledByMSI : False
3/20/2023 5:51:24 PM - SupportedFrameworkVersionRange : [4.7,)
3/20/2023 5:51:25 PM - SignatureState : ValidSignature
3/20/2023 5:51:25 PM - SignedBy : Microsoft Corporation
3/20/2023 5:51:25 PM - Certificate Info :
3/20/2023 5:51:25 PM - -------------------------------------------------------
3/20/2023 5:51:25 PM - [Subject] : CN=Microsoft Corporation, OU=OPC, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
3/20/2023 5:51:25 PM - [Issuer] : CN=Microsoft Code Signing PCA 2010, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
3/20/2023 5:51:25 PM - [Serial Number] : 3300000464961666FD3445B10C000000000464
3/20/2023 5:51:25 PM - [Not Before] : 9/2/2021 11:26:31 AM
3/20/2023 5:51:25 PM - [Not After] : 9/1/2022 11:26:31 AM
3/20/2023 5:51:25 PM - [Thumbprint] : 4E6167417BC954B1F6BEB22EFE58F0C2824800AD
3/20/2023 5:51:25 PM - Supported Products :
3/20/2023 5:51:25 PM - Microsoft.VisualStudio.Community
3/20/2023 5:51:25 PM - Version : [17.0,18.0)
3/20/2023 5:51:25 PM - ProductArchitecture : amd64
3/20/2023 5:51:25 PM - Microsoft.VisualStudio.Pro
3/20/2023 5:51:25 PM - Version : [17.0,18.0)
3/20/2023 5:51:25 PM - ProductArchitecture : amd64
3/20/2023 5:51:25 PM - Microsoft.VisualStudio.Enterprise
3/20/2023 5:51:25 PM - Version : [17.0,18.0)
3/20/2023 5:51:25 PM - ProductArchitecture : amd64
Поддерживаемые продукты включают только VS для amd64, но не для ARM64.
Однако я не могу найти ссылку на WDK, который устанавливается в Windows 11 для ARM64. Есть решение?