WinDDK-7 вот , что нужно для создания драйвера

У нас Windows 10-64.

Задача разработать например драйвер устройства под Windows.
Устанавливаем Windows Device Driver Kit 7 :
Скачиваем с офф.сайта microsoft ISO, разархивируем , запустим KitSetup.exe

фотка 1

так выглядят в Панель управления\Программы\Программы и компоненты

фотка 2

установлен у меня в C:\WinDDK\7600.16385.1

В C:\WinDDK\7600.16385.1\src много примеров исходных кодов.
Примечание : если у вас уже установлен Win Driver Kit 10 , то придется удалить.

Фишка в том , что сборку надо запускать через запуск сначала командного файла (который устанавливает переменные среды) :
см. Пуск->Windows Driver

фотка 3

открывается консоль, где и надо ввести build (в каталоге вашего проекта). Процесс сборки выглядит примерно так:

фотка 4

для x64 входим через C:\Windows\System32\cmd.exe /k C:\WinDDK\7600.16385.1\bin\setenv.bat C:\WinDDK\7600.16385.1\ fre x32-64


Windows 10 - надо сначала отключить проверку цифровой подписи (у меня срабатывает при нажатой SHIFT + клик Перезагрузка)
Отключаем.

фотка 5

Далее просто пробуем написать простейший kernel драйвер

На самом деле в дальнейшем в этой ветке сайта мы будем заниматься UMDF драйверами, но для проверки первого драйвера подвернулся пример driver.sys (kernel драйвер, драйвер уровня ядра)


Компилируем простейший драйвер (sys - кернел драйвер)


#include <wdm.h>
 
static
VOID Unload(DRIVER_OBJECT * pDriverObj)
{
	DbgPrint("...........Unload\n");
}
 
NTSTATUS DriverEntry(DRIVER_OBJECT * pDriverObj, UNICODE_STRING * pRegPath)
{
	DbgPrint("DriverEntry................\n");
    return STATUS_SUCCESS;
}


Для варианта сборки x86 пробуем зарегистрировать драйвер

фотка 6

Для варианта сборки amd64 получаем

фотка 7

Теперь по другому пробуем проверить запущен ли все-таки драйвер через программу OSR Driver Loader:

фотка 8

Получается драйвер все-таки запускается несмотря на ругань по поводу сертификата.

смотрим например еще так :


C:\WINDOWS\system32>sc query mydriver

Имя_службы: mydriver
        Тип                : 1  KERNEL_DRIVER
        Состояние          : 4  RUNNING
                                (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
        Код_выхода_Win32   : 0  (0x0)
        Код_выхода_службы  : 0  (0x0)
        Контрольная_точка  : 0x0
        Ожидание           : 0x0

osr driver loader - прекрасно и сама регистрирует / запускает / останавливает / удаляет драйвер. Только не забывайте перезагружаться.


Отладка

У нас на сайте см. отдельный раздел по отладке драйверов.