Руководство по проектированию архитектуры драйвера Kernel-Mode
Примечание
Сведения о программных интерфейсах, которые драйвер может реализовывать или вызывать, см. в справочнике по драйверу в режиме ядра.
В этом разделе содержатся общие понятия, которые помогут вам понять программирование в режиме ядра и описываются конкретные методы программирования ядра. Общие сведения о драйверах Windows см. в статье начало работы с драйверами Windows, в которой представлен общий обзор компонентов Windows, перечислены типы драйверов устройств, используемых в Windows, обсуждаются цели драйверов устройств Windows и рассматриваются общие примеры драйверов устройств, включенные в комплект.
В этом разделе содержатся концептуальные сведения, которые описывают и помогают создавать драйверы в режиме ядра.
Обзор, содержащий:
- Общие сведения о компонентах Windows
- Проектирование Goals для драйверов Kernel-Mode
- Каталог примеров драйверов Kernel-Mode
- Рекомендации по разработке драйверов ядра, скомпилированные командой Microsoft Surface
Компоненты режима ядра описывают основные диспетчеры режима ядра и компоненты операционной системы Windows.
Компонент Описание Менеджеры Диспетчер объектов Windows Kernel-Mode Управляет объектами: файлами, устройствами, механизмами синхронизации, разделами реестра и т. д. Диспетчер памяти Windows Kernel-Mode Управляет физической памятью операционной системы. Диспетчер процессов и потоков Windows Kernel-Mode Обрабатывает выполнение всех потоков в процессе. Диспетчер ввода-вывода Windows Kernel-Mode Управляет взаимодействием между приложениями и интерфейсами, предоставляемыми драйверами устройств. Диспетчер Kernel-Mode Plug and Play Windows Подсистема диспетчера ввода-вывода, диспетчер Plug and Play (PnP) позволяет компьютеру распознавать, когда устройство добавляется в систему. Windows Kernel-Mode Power Manager Управляет упорядоченным изменением состояния питания для всех устройств, поддерживающих изменения состояния питания. Windows Kernel-Mode Configuration Manager Управляет реестром, например мониторинг изменений в реестре или регистрация обратных вызовов для определенных данных реестра. Диспетчер транзакций ядра Windows Kernel-Mode Реализует обработку транзакций в режиме ядра. Эталонный монитор безопасности Windows Kernel-Mode Предоставляет процедуры для работы драйвера с управлением доступом. Libraries Библиотека ядра Windows Kernel-Mode Реализует основные функции, от которых зависит все остальное в операционной системе. Ядро Microsoft Windows предоставляет базовые низкоуровневые операции, такие как планирование потоков или аппаратные прерывания маршрутизации. Библиотека поддержки руководителей Windows Kernel-Mode Относится к компонентам режима ядра, которые предоставляют различные службы для драйверов устройств, включая управление объектами, управление памятью, управление процессами и потоками, управление входными и выходными данными и управление конфигурацией. Библиотека Windows Kernel-Mode Run-Time Набор общих служебных подпрограмм, необходимых различным компонентам режима ядра. Библиотека безопасных строк Windows Kernel-Mode Безопасная библиотека строк для обеспечения большей безопасности при разработке в режиме ядра. Библиотека DMA Windows Kernel-Mode Библиотека прямого доступа к памяти (DMA) для разработчиков драйверов устройств. Библиотека Windows Kernel-Mode HAL Уровень аппаратной абстракции (HAL) для разработки драйверов в режиме ядра. Библиотека WINDOWS Kernel-Mode CLFS Система ведения журнала транзакций, общая файловая система журналов (CLFS). Библиотека WMI Windows Kernel-Mode Общий механизм управления компонентами, называемый инструментарием управления Windows (WMI). Написание драйверов WDM и Введение в WDM содержат сведения, необходимые для записи драйверов с помощью модели драйверов Windows (WDM).
Объекты устройств и другие разделы в разделе Объекты устройства и стеки устройств описывают, как операционная система представляет устройства по объектам устройств.
Управление памятью для драйверов Windows показывает, как драйверы в режиме ядра выделяют память для таких целей, как хранение внутренних данных, буферизация данных во время операций ввода-вывода и совместное использование памяти с другими компонентами режима ядра и пользовательского режима.
Безопасности Убедитесь, что драйверы максимально защищены от управления доступом и привилегиями устройств до SDDL для объектов устройств.
Обработка irP описывает, как драйверы режима ядра обрабатывают пакеты запросов ввода-вывода (IRP).
DMA Прямой доступ к памяти (DMA) является критически важным аспектом разработки драйверов, и в разделах этого узла рассматривается DMA от A до Z.
Объекты контроллера представляют физический контроллер устройства с подключенными устройствами.
Подпрограммы службы прерываний (ISR) обрабатывают прерывания для драйверов физического устройства, получающего прерывания.
Прерывания с сигналом сообщения активируют прерывание, записывая значение в определенный адрес памяти.
Отложенные вызовы процедур (объекты DPC) могут быть поставлены в очередь из ISR и выполняться позже и в более низком irQL, чем ISR.
Plug and Play (PnP) фокусируется на системной поддержке программного обеспечения для PnP и о том, как драйверы используют ее для реализации PnP.
Управление питанием описывает архитектуру, которая обеспечивает комплексный подход к управлению питанием системы и устройств.
Инструментарий управления Windows (WMI) — это расширения для драйвера в режиме ядра, которые позволяют драйверу стать поставщиком WMI. Поставщик WMI делает данные измерений и инструментирования доступными для потребителей WMI, таких как приложения в пользовательском режиме.
Методы программирования драйверов Для программирования драйверов в режиме ядра Windows требуются методы, которые иногда значительно отличаются от методов обычного программирования в пользовательском режиме.
Функции энергонезависимого доступа к массовой памяти (версия 3) описывают предварительные функции для доступа к массовой памяти, доступные начиная с Windows 11 Insider Preview.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по