Windows Driver Foundation | это... Что такое Windows Driver Foundation? (original) (raw)
Windows Driver Foundation
Разработчик | Microsoft |
---|---|
Операционная система | Windows |
Языки интерфейса | Английский |
Последняя версия | 1.9 |
Состояние | Active |
Windows Driver Foundation (WDF) — набор программных инструментов от корпорации Microsoft, облегчающих разработку драйверов устройств для Windows 2000 и более поздних версий Windows.
Основными инструментами, составляющими WDF, являются Kernel Mode Driver Framework (KMDF) и User Mode Driver Framework (UMDF). Эти наборы инструментов обеспечивают поддержку новой объектно-ориентированной программной модели разработки драйверов для Windows. Основной целью фреймворков является «Концептуальная масштабируемость» («Conceptual Scalability»), которая характеризуется только требованием к разработчику драйвера знать несколько простых концепций, чтобы написать простой драйвер, а по мере роста знаний разработчик имеет возможность использовать более сложные, но в то же время более широкие возможности особенностей драйверов. Это заметно отличается от Windows Driver Model (WDM), которая требует от разработчиков драйверов полного знакомства со множеством сложных технических деталей перед написанием даже простейшего драйвера.
Важным шагом в достижении концептуальной масштабируемости является то, что KMDF и UMDF используют составную модель. Такая модель позволяет разработчику расширять и изменять поведение «хорошего драйвера» по умолчанию. Это контрастирует с более старой Windows Driver Model, которая зависит от того, насколько полно разработчик реализовал все аспекты поведения драйвера.
Варианты
Фреймворк поставляется в двух вариантах:
- Kernel-Mode Driver Framework — для написания стандартных драйверов уровня ядра.
- User-Mode Driver Framework — для написания определенных классов драйверов, которые могут исполняться на уровне пользователя.
Это подразумевает использование лежащей в основе программной модели. Тем не менее, фреймворк уровня ядра использует простой API языка Си, в то время как фреймворк уровня пользователя основывается на C++ и облегченной версии COM.
WDF также содержит набор инструментов проверки, которыми могут воспользоваться создатели драйверов. Эти инструменты проверяют код драйвера на наличие распространенных ошибок и/или симулируют код драйвера для определения причин проблем, которые сложно обнаружить и протестировать.
Инструменты
Static Driver Verifier (SDV) позволяет выполнять достаточно глубокую проверку исполнения кода через отслеживание функций и даже вызовов через WDM. SDV может определить проблемы драйвера, которые скрываются благодаря множеству вызовов функций или множеству операций. SDV используется, когда драйвер близок к завершению.
PREFast for Drivers (PFD) выполняет более поверхностный анализ операций драйвера. PFD может проверить наличие проблем переполнения буфера и других наиболее распространенных программных ошибок, равно как и некоторое число специфических проблем драйверов. Благодаря тому, что его возможности ограничены пределами одной функции, время запуска PFD существенно короче по сравнению с SDV. Поэтому PFD можно использовать в ходе процесса разработки драйвера.
Дополнительные источники
- Домашняя страница Windows Driver Foundation
- Developing Drivers with the Windows Driver Foundation (Orwick и Smith)
- Windows Driver Kit
- Веб-сайт OSR Online содержит множество статей о WDF, KMDF и разработке драйверов для Windows. (на английском)
- Знакомство с Windows Driver Framework, написанное известным разработчиком драйверов для Windows, Уолтером Они. (на английском)
- Building and deploying a basic WDF Kernel Mode Driver, CodeProject
- Developing a WDF USB Kernel Mode Driver for the OSR USB FX2, CodeProject
Программные интерфейсы и фреймворки Microsoft Windows | |
---|---|
Графика | Проводник Windows • DirectX • Direct3D • GDI • Windows Presentation Foundation • Windows Color System • Windows Image Acquisition • Windows Imaging Component |
Звук | DirectSound • DirectMusic • XACT • Speech API • MME |
Мультимедиа | DirectShow • Windows Media • Media Foundation |
Веб | MSHTML • MSXML • Платформа RSS для Windows • JScript • ActiveX • XMLHttpRequest • Гаджеты |
Доступ к данным | Компоненты Microsoft Data Access • Extensible Storage Engine • ADO.NET • Sync Framework • Jet-механизм |
Сети | Winsock (LSP) • Filtering Platform • NDIS • Windows Rally • Сервис фоновой интеллектуальой передачи данных • P2P API |
Коммуникации | TAPI |
Администрирование | Консоль Win32 • Windows Script Host • Инструментарий управления Windows • PowerShell • Планировщик задач • Offline Files • Теневое копирование • Windows Installer • Диспетчер ошибок Windows • Журнал событий Windows |
Модель компонентов | COM • COM+ • DCOM • .NET Framework |
Библиотеки | Microsoft Foundation Classes (MFC) • Active Template Library (ATL) • Windows Template Library (WTL) • Base Class Library (BCL) |
Разработка драйверов | Windows Driver Model • Windows Driver Foundation (KMDF • UMDF) |
Безопасность | CryptoAPI (CAPICOM) • Windows CardSpace • Data protection API • Security Support Provider Interface |
.NET | .NET Framework • ASP.NET • ADO.NET • .NET Remoting • Windows Presentation Foundation • Windows Workflow Foundation • Windows Communication Foundation • Windows CardSpace • XNA Framework • Silverlight • Библиотека параллельного программирования |
Межпроцессноевзаимодействие | Dynamic Data Exchange (DDE) • MSRPC • Именованные каналы |
Текст иподдержка языков | Framework Текстовых сервисов • Объектная модель текстов • Редактор метода ввода • Языковые пакеты • Многоязычный интерфейс |
Игры | XNA Framework • DirectX |