Поделиться через


Примеры драйверов Kernel-Mode

WDK предоставляет различные примеры драйверов режима ядра. После установки WDK подкаталог src\general содержит пример кода драйвера, применимый ко всем драйверам в режиме ядра. Примеры также поддерживаются в сети. Эти примеры включают следующее:

DCHU

Применяет принципы проектирования DCH (декларативные, компоненты и приложения поддержки оборудования [HSA]). Его можно использовать в качестве модели для собственного пакета драйверов Windows.

PLX9x5x

В этом примере показано, как написать драйвер для универсального устройства PCI с помощью Windows Driver Framework.

SimpleMediaSource

В этом примере показано, как создать пользовательский источник мультимедиа и пакет драйверов, который можно установить в качестве камеры и создать кадры.

SystemDma/wdm

В этом примере показано использование системного DMA версии 3. В нем показано, как драйвер может использовать системный контроллер DMA, поддерживаемый Windows, для записи данных в аппаратное расположение с помощью DMA.

Лаборатория WinHEC 2017

WinHEC 2017/Оптимизация производительности Windows

Отмена

Демонстрирует использование очередей IRP с безопасной отменой.

echo (вывод на экран)

Событие

Демонстрирует методы, которые драйверы режима ядра могут использовать для уведомления приложений о событиях оборудования, если приложение запрашивает уведомление. В одном методе используются объекты событий , а в другом — постановка в очередь запроса уведомления до тех пор, пока не произойдет событие.

filehistory

Пример FileHistory — это консольное приложение, которое запускает службу журнала файлов, если она остановлена, и планирует регулярное резервное копирование. Приложение требует, чтобы в качестве параметра командной строки в качестве целевого объекта резервного копирования по умолчанию использовался путь к устройству хранения.

Пример IOCTL

Демонстрирует, как драйверы должны поддерживать коды управления вводом-выводом.

obcallback

Пример драйвера ObCallback демонстрирует использование зарегистрированных обратных вызовов для защиты процессов. Драйвер регистрирует обратные вызовы управления, которые вызываются при создании процесса.

pcidrv

В этом примере показано, как написать драйвер KMDF для устройства PCI. Этот пример работает с адаптером PCI Ethernet на основе Intel 82557/82558 (10/100) и Intel.

perfcounters/kcs

Пример драйвера Kcs демонстрирует использование библиотеки производительности в режиме ядра.

registry/regfltr

В примере RegFltr показано, как написать драйвер фильтра реестра.

тостер

Предоставляет пример кода для набора драйверов, соответствующих модели драйверов Windows (WDM). Этот пример также включает пример программного обеспечения для установки.

tracedrv

Показывает, как использовать трассировку программного обеспечения WPP.

Пример скелета драйвера UMDF

В этом примере показано, как использовать версию 1 платформы User-Mode Driver Framework для написания минимального драйвера.

Драйвер фильтра KMDF Firefly для устройства HID Наряду с тем, как написать драйвер фильтра, в этом примере показано, как использовать интерфейсы удаленного ввода-вывода для открытия коллекции HID в режиме ядра и отправки запросов IOCTL для установки и получения отчетов о функциях, а также как приложение может использовать интерфейсы WMI для отправки команд в драйвер фильтра.

Другие подкаталоги \src каталога содержат пример кода для драйверов в режиме ядра для различных типов оборудования.

См. также раздел

Примеры драйверов Microsoft Windows на GitHub