Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье подробно описаны известные проблемы, касающиеся WDK.
WDK для Windows 11 версии 24H2
Разработка драйверов в режиме ядра x86
Начиная с Windows 11 версии 24H2, WDK больше не поддерживает разработку драйверов в режиме ядра x86. Если у вас есть бизнес-потребности в разработке драйверов режима ядра x86, используйте WDK версии 23H2
Перезапуск после подготовки
После подготовки и развертывания целевой компьютер не может перезапуститься после шагов развертывания.
Поддержка SxS драйвера WDK ARM64
Когда на компьютере ARM64 установлены комплекты Windows 11, версия 24H2 и версия 22H2, сборка драйвера Kernel Mode Driver Framework (KMDF) для ARM64 с TargetPlatformVersion установленной на Windows 11, версия 22H2 терпит неудачу с WdfDriverEntry.lib(stub.obj) : error LNK2001: unresolved external symbol
.
Не удается установить расширение WDK
Если вы используете Visual Studio версии 17.11.0 или более поздней, снимите флажок установки расширения при установке WDK.
WDK для Windows 11 версии 22H2
Ошибка службы при запуске
Если вы установили исходную версию Windows 11 версии 22H2 WDK в период с мая по август 2022 г. (версия 10.0.22621.1), при запуске Visual Studio с WDK может появиться следующее сообщение об ошибке.
Пакет Microsoft.Windows.Tools.WinIDE.Debugger.DebuggerPackage, DebuggerPackage, Version=10.0.0.0, Culture=neutral, PublicKeyToken=null
не загружен правильно.
Эта проблема устранена в WDK версии 10.0.22621.382. Вы можете удалить WDK, а затем переустановить последнюю версию WDK, выполнив инструкции в разделе "Скачать комплект драйверов Windows".
Отладчик в Visual Studio не работает
Невозможно отлаживать драйверы в интерфейсе Visual Studio при использовании Visual Studio 2022 версии 17.2.0 и 17.3 с Windows 11 версии 22H2 WDK (10.0.22621.382). Чтобы обойти проблему, выполните одно из следующих действий: обновите Visual Studio до 17.4.1 или более поздней версии, отладите с помощью WinDbg или используйте версию Visual Studio до 17.2.0. Следующее сообщение об ошибке связано с этой проблемой:
QueryBuildManagerBusyEx должен вызываться в пользовательском интерфейсе.
Распределяемые сопутствующие установщики Windows Driver Framework (WDF) не выполняют своих функций
Совместно распространяемые установщики WDF больше не поддерживаются. Это приводит к проблемам на компьютерах с установленной версией Windows 11 версии 22H2 WDK и более старой версией WDK. При попытке создать драйвер WDF 1.11 в такой системе msbuild завершается ошибкой. Сборка завершается ошибкой, так как msbuild не может найти совместного установщика WDF.
Чтобы устранить эту проблему, перед установкой Windows 11 версии 22H2 WDK создайте резервную копию папки \Program files (x86)\windows kit\10\redist\wdf
и восстановите ее после этого. Альтернативно, если вы установили Windows 11 версии 22H2 WDK, установите файл MSI из распространяемых компонентов WDK 8 на отдельном компьютере и скопируйте папку redist
в папку \Program files (x86)\windows kit\10\redist\wdf
. Дополнительные сведения см. в разделе "Компоненты распространяемой платформы".
WDK для Windows 10 версии 2004
Проблема в Функции ExAllocatePoolZero, ExAllocatePoolQuotaZero и ExAllocatePoolPriorityZero
В мае 2020 года OSR обнаружила проблему с новой поддержкой нижнего уровня для автоматического нуля выделения пула. Проблема может привести к тому, что выделение не будет инициализировано с нуля в системах под управлением Windows 10 версии 1909. Это исправлено с обновлением системы безопасности WDK для Windows 10 версии 2004 и Enterprise WDK (EWDK) для Windows 10 версии 2004 16 декабря. Корпорация Майкрософт воспользовалась обновлением системы безопасности и обновила EWDK, чтобы включить средства сборки Visual Studio 16.7. Корпорация Майкрософт рекомендует всем разработчикам драйверов удалить исходный пакет SDK и WDK (версия 2004) и установить пакет SDK обновления и WDK или EWDK.
Чтобы обеспечить полное решение для обеспечения безопасности, исправление ОС было выпущено для Windows 10 версии 1909 в ноябре, поэтому если был драйвер, созданный с проблемой безопасности, ос будет защищен от него.
Помимо загрузки обновленной версии WDK/EWDK, корпорация Майкрософт рекомендует всем разработчикам ПО переключить все выделения памяти в ядре на использование новых интерфейсов DDIs для обнуления пула, которые возвращают обнуленную память по умолчанию. Это повышает безопасность и надежность программных драйверов. Чтобы помочь в этом переходе, корпорация Майкрософт создала правило проверки статических драйверов, которое доступно в предварительной версии Windows 10 WDK версий 20236 и выше. Правило выявляет все случаи в исходном коде драйвера, где используются старые интерфейсы выделения пула, и рекомендует заменить их на новые, более безопасные эквиваленты. Правило применимо к драйверам на основе WDM, WDF и NDIS.
Установка WDK больше не включает устранение рисков Spectre для всех проектов C++, как показано в WDK 1903
Хотя установка WDK включает устранение рисков Spectre по умолчанию для всех драйверов, он больше не включает их для всех проектов C++.
Ошибка: WDK, соответствующий целевой платформе '10.0.19041.0', не найден.
При указании версии SDK для Windows на '10.0 (последняя установленная версия)' с WDK 10.0.19041.0 возникает ошибка "WDK, соответствующая целевой версии '10.0.19041.0', не найдена", даже когда версия SDK установлена.
Обходное решение. На странице свойств проекта драйвера (общие свойства >конфигурации) задайте для windows SDK значение $(LatestTargetPlatformVersion). Если этот параметр недоступен, выберите параметр , наследуется от родительского или проекта по умолчанию.
EWDK и SDV, работающие на сервере, имеют требования к .NET
Для запуска средства проверки статических драйверов из EWDK требуется .NET Framework 4.7.2. В зависимости от версии Windows на вашей системе .NET может быть: установлена, установлена но требует включения, или не установлена. Чтобы получить дополнительную информацию о том, какая версия .NET установлена либо о состоянии установки .NET, ознакомьтесь с информацией о версиях и зависимостях .NET Framework.
Сбой создания DVL с помощью System.IO.FileNotFoundException
При попытке создать журнал проверки драйвера (DVL) отображается следующая ошибка:
Unhandled Exception: System.IO.FileNotFoundException.
Could not load file or assembl.
'System.Runtime, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
or one of its dependencies.
The system cannot find the file specified.
Эта проблема может возникать как в командной строке, так и в средах графического интерфейса. Эта проблема устранена в будущей версии WDK и может быть замечена в WDK предварительной версии Windows. К сожалению, для текущей версии не существует обходного решения.
SDV не работает в EWDK, если VS не установлен
SDV зависит от VCRUNTIME140D.dll в составе Visual Studio. Таким образом, запуск EWDK на компьютере без установки VS завершается сбоем. Установите Visual Studio на компьютере, чтобы обойти эту проблему.
Средство проверки драйверов не включается и не отключается при использовании тестового обозревателя WDK.
Проверка драйверов не включается/отключается при выполнении базовых тестов устройств с помощью WDK Test Explorer.
Обходное решение: На клиентском компьютере вручную включите или отключите средство проверки драйверов в этих инструкциях.
Установка WDK на стороне Windows 10 версии 2004 и WDK Windows 10 версии 1903 или версии 1803
При использовании обоих версий комплектов, установленных на одном компьютере, функция развертывания драйвера не работает для более старой версии.
Обходное решение: Используйте 1803 на отдельном компьютере, если требуется функция развертывания драйвера .
Тесты Windows Device Testing Framework (WDTF) теперь выполняются только в системах с соответствующими версиями Windows 10 в качестве WDK
В WDK для Windows 10 версии 1809 изменения были внесены в WDTF для поддержки этой версии Windows 10 версии 1809. Это связано с тем, что WDTF больше не будет работать на ос нижнего уровня. Это изменение продолжается с WDK для Windows 10 версии 2004.
Альтернатива для тестирования нижнего уровня
Тесты WDTF в WDK для Windows 10 версии 1803 можно запускать в предыдущих версиях Windows.
APIValidator
На компьютере с архитектурой x86 APIValidator не может работать с бинарными файлами x64. При создании драйверов x64 на компьютере x86 необходимо отключить APIValidator.
Решение:
Перейдите на страницу свойств решения драйвера.
Выберите APIValidator, а затем "Общие", а затем измените значение "Запустить ApiValidator" с "Да" на "Нет".
Для WDK, работающего в системах Windows 7, требуется 3033929 базы знаний
Перед установкой WDK на системах под управлением Windows 7 необходимо установить рекомендации по безопасности Microsoft 3033929 (KB3033929). KB3033929 можно скачать из Центра загрузки Майкрософт.
Установка WDK создает ошибку из Visual Studio, которая уже установлена компонентом надстройки.
Это сообщение об ошибке появляется, если WDK был удалён, но расширение драйверов WDK для Visual Studio осталось установленным.
Резолюция: В Visual Studio перейдите в раскрывающееся меню расширения , выберите пункт "Управление расширениями", выберите комплект драйверов Windows и выберите "Удалить".
Вопросы и ответы
Разделы справки сообщите, содержат ли версии WDK или EWDK исправление для отсчитывания выделения пула?
В разделе "Параметры системы" перейдите к разделу "Добавление или удаление программ", найдите комплект драйверов Windows и обратите внимание на версию. Исходная версия WDK для Windows 10 версии 2004 имеет версию 10.0.19041.1. Обновленная версия WDK — 10.0.19041.685 Для EWDK, после запуска среды EWDK просмотрите название командного окна. Обновленная версия содержит vb_release_svc_prod1.19041.685. Кроме того, при просмотре переменных среды переменная BuildLab должна отображаться vb_release_svc_prod1.19041.685.
Пакет средств разработки программного обеспечения Windows (SDK) также был обновлен, это необходимо?
Нет, однако обновленный пакет средств разработки программного обеспечения Windows (SDK) содержит исправление для onecore.lib, которое может быть приятно иметь. Кроме того, обычно рекомендуется поддерживать согласование пакетов SDK и WDK.
Если у меня уже установлена версия WDK для Windows 10 версии 2004, необходимо удалить ее перед установкой обновленной версии?
Мы рекомендуем, если у вас есть исходный пакет SDK 2004 и WDK, удалить их и установить обновленный комплект SDK и WDK с улучшенной безопасностью. Если обновлённая версия WDK установлена поверх оригинальной версии WDK, обновлённая версия перезаписывает оригинальную. Примечание. В этом сценарии "Добавление или удаление программ" перечислены обе версии.