Общие примеры драйверов
Примеры в этом каталоге предоставляют отправную точку для написания пользовательского драйвера для устройства.
Пример | Description |
---|---|
Отмена безопасной очереди IRP | Демонстрирует использование подпрограмм с отменой безопасной очереди IoCsqInitialize, IoCsqInsertIrp, IoCsqRemoveIrp, IoCsqRemoveIrp, IoCsqRemoveNextIrp. Используя эти подпрограммы, разработчики драйверов не должны беспокоиться о условиях отмены IRP. |
Эхо KMDF | Демонстрирует использование последовательной очереди для сериализации запросов на чтение и запись, представленные драйверу. |
Эхо UMDF1 | Демонстрирует, как использовать UMDF 1 для написания драйвера и использования рекомендаций. |
Эхо UMDF2 | Демонстрирует, как использовать UMDF 2 для написания драйвера и использования рекомендаций. |
Пример сокета UMDF (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 PLX9x | Демонстрируется запись драйвера для универсального устройства PCI с помощью Windows Driver Framework (WDF). Целевое оборудование для этого драйвера — PLX9656/9653RDK-LITE. |
RegFltr | Показывает, как написать драйвер фильтра реестра. |
Простой источник мультимедиа | Демонстрирует запись пользовательского пакета источника мультимедиа и драйвера. |
Система DMA | Демонстрирует использование системы DMA версии 3. В нем показано, как драйвер может использовать системный контроллер DMA, поддерживаемый Windows, для записи данных в аппаратное расположение с помощью DMA. |
Пример драйвера тостера | Итеративная серия примеров, демонстрирующая основные аспекты разработки драйверов Windows для платформы драйверов в режиме ядра (KMDF) и среда выполнения платформы драйвера режима пользователя (UMDF) версии 1. |
Пример пакета тостера | Имитирует аппаратную и программно-первую установку образца драйвера тостера. |
Пример тостера (UMDF версии 2) | Итеративная серия примеров, демонстрирующая основные аспекты разработки драйверов Windows с помощью среда выполнения платформы драйвера режима пользователя (UMDF) версии 2. |
EventDrv | Поставщик трассировки в режиме ядра и драйвер. Драйвер не управляет оборудованием; он просто создает события трассировки. Он предназначен для демонстрации использования API трассировки событий для Windows (ETW) в драйвере. |
Системный элемент управления трассировки | Демонстрирует использование API-интерфейсов управления трассировкой событий для сбора событий от поставщика системной трассировки. |
Tracedrv | Пример драйвера, инструментированного для трассировки программного обеспечения. |
Скелет драйвера UMDF | Демонстрирует использование среда выполнения платформы драйвера режима пользователя для написания минимального драйвера и демонстрации рекомендаций. |
Набор средств установки пакета драйверов для универсальных драйверов | Иллюстрирует принципы универсального проектирования драйверов DCHU. |