Не удается открыть файл include: 'ntddk.h'

Я пытаюсь войти в развитие драйвера (очередь "не делай этого" ) Я смотрел эту страницу msdn и после установки WDK (драйвер Windows Kit) 10 Я все еще не могу скомпилировать пример, который они используют на этой странице.

Я рассмотрел другие вопросы SO, но я не могу найти установленный каталог WDK. Когда я пытаюсь запустить настройку, меня приветствует следующее: WDK Setup image

Как я могу это решить?

Ответ 1

Вам нужно добавить путь заголовков WDK к вашим каталогам include vcxproj:
Свойства vcxproj → C/С++ → Общие → Дополнительные каталоги Include

C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\km\

P.S.: Убедитесь, что вы установили SDK 10 вместе с WDK 10.
P.P.S: Без SDK вы получите ошибку Cannot open include file: 'ntdef.h'

Ответ 2

Правило большого пальца

Когда вам нужно создать последнюю (или конкретную) версию WDK, убедитесь, что установлена ​​соответствующая версия Win SDK.

Предполагаемая причина

В процессе отладки проблемы оказалось, что (из-за версии SDK) процесс сборки устанавливал $(LastTargetPlatformVersion) в 10.0.10586. Хотя установленный WDK предоставляет необходимые версии файлов сборки только для версии 10.0.14393. Похоже, это несколько задуманное поведение.

Мой случай

В моем случае это было связано с различными версиями Win SDK и WDK. У меня был SDK 10.0.10586 и WDK 10.0.14393. Установка SDK 10.0.14393 решила проблему для меня.

Боковое примечание

Win SDK устанавливается с компоновкой по умолчанию VS2015, но по какой-то причине он не получает обновления в процессе обновления VS.

Ответ 3

Существует макрос $ (DDK_INC_PATH), который можно добавить для включения каталогов вашего проекта (свойства vcxproj → VC++ Каталоги → Включить каталоги)

Ответ 4

Решил ее, выбрав другую "версию Windows SDK" в Visual Studio в разделе "Свойства проекта" → "Общие".

В каталоге C:\Program Files (x86)\Windows Kits\10\Include меня есть 5 папок с Windows SDK. В новейшей версии (10.0.17763.0) не было подпапки km. После изменения версии Windows SDK с 10.0.17763.0 на 10.0.17134.0 в Visual Studio был найден заголовок ntddk.h.