Общие примеры драйверов

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

Образец Описание
Отмена безопасной очереди IRP Демонстрирует использование процедур безопасных для отмены очередей IoCsqInitialize, IoCsqInsertIrp, IoCsqRemoveIrp, IoCsqRemoveNextIrp. Используя эти подпрограммы, разработчики драйверов не должны беспокоиться о условиях отмены IRP.
Эхо KMDF Демонстрирует использование последовательной очереди для сериализации запросов на чтение и запись, представленные драйверу.
Эхо UMDF1 Демонстрирует, как использовать UMDF 1 для написания драйвера и следования передовым практикам.
Эхо UMDF2 Демонстрирует, как использовать UMDF 2 для написания драйвера и применения лучших практик.
Пример UMDF SocketEcho (UMDF версии 1) Демонстрирует использование UMDF для написания драйвера и демонстрирует передовые практики.
Аппаратное событие Демонстрирует два разных способа, как драйвер в режиме ядра может уведомлять приложение о событии оборудования. Один из способов использует метод на основе событий, а другой использует метод на основе IRP. Пример драйвера использует таймерный DPC для моделирования событий оборудования.
Пример драйвера без поддержки PnP Демонстрирует запись драйвера, отличного от PnP, с помощью платформы драйверов в режиме ядра.
IOCTL Демонстрирует использование четырех различных типов операций ввода-вывода (METHOD_IN_DIRECT, METHOD_OUT_DIRECT, METHOD_NEITHER и METHOD_BUFFERED).
ObCallback Демонстрирует использование зарегистрированных обратных вызовов для защиты процессов. Драйвер регистрирует обратные вызовы, которые вызываются при создании процесса.
PCIDRV В этом примере показано, как написать драйвер KMDF для устройства PCI. Пример работает с адаптером PCI Ethernet на основе Intel 82557/82558 (10/100) и совместимыми с Intel.
Счетчик ядра Демонстрирует использование библиотеки производительности в режиме ядра. Драйвер не управляет оборудованием, он просто предоставляет счетчики. Код содержит комментарии, чтобы объяснить, что делает каждая функция.
Драйвер PCI PLX9x5x Демонстрируется запись драйвера для универсального устройства PCI с помощью Windows Driver Framework (WDF). Целевое оборудование для этого драйвера — плата PLX9656/9653RDK-LITE.
RegFltr Показывает, как написать драйвер фильтра реестра.
Простой источник мультимедиа Демонстрирует, как создать пользовательский источник мультимедиа и пакет драйверов.
Система DMA Демонстрирует использование системы DMA версии 3. В нем показано, как драйвер может использовать системный контроллер DMA, поддерживаемый Windows, для записи данных в аппаратное расположение с помощью DMA.
Пример драйвера тостера Итеративная серия примеров, демонстрирующая основные аспекты разработки драйверов Windows для Kernel-Mode Driver Framework (KMDF) и User-Mode Driver Framework (UMDF) версии 1.
Пример пакета тостера Имитирует установку сначала аппаратного, а затем программного образца драйвера тостера.
Пример тостера (UMDF версии 2) Итеративная серия примеров, демонстрирующая основные аспекты разработки драйверов Windows с помощью User-Mode Driver Framework (UMDF) версии 2.
EventDrv Поставщик и драйвер трассировки в режиме ядра. Драйвер не управляет каким-либо оборудованием; он лишь генерирует события трассировки. Он предназначен для демонстрации использования API трассировки событий для Windows (ETW) в драйвере.
Управление системной трассировкой Демонстрирует использование API-интерфейсов управления трассировкой событий для сбора событий от поставщика системной трассировки.
Tracedrv Пример драйвера, оснащённого средствами для трассировки программного обеспечения.
Скелет драйвера UMDF Демонстрирует использование User-Mode Driver Framework для написания минимального драйвера и демонстрации рекомендаций.
Набор средств установки пакета драйверов для универсальных драйверов Иллюстрирует принципы универсального проектирования драйверов DCHU.