- Windows Driver Model
-
Windows Driver Model (WDM) – фреймворк для драйверов устройств (также известен как Win32 Driver Model и Windows NT Driver Model), был введен в Windows 98 и Windows 2000 для замены устаревшего VxD, который использовался в старых версиях Windows таких как Windows 95 и Windows 3.1.
Содержание
Обзор
Microsoft Windows Driver Model определяет унифицированную модель драйвера для операционных систем Windows 98, Windows 2000 и старше, стандартизируя требования и уменьшая количество кода, необходимое для написания драйвера. В соответствии с концепцией WDM, драйверы могут быть бинарно совместимы. Так, например, драйвер для платформы x86, написанный для Windows 98 может подойти и к Windows Me, и к Windows 2000, и даже к Windows Vista. WDM-драйвера спроектированы для прямой совместимости, поэтому такой драйвер может быть запущен на более поздней версии Windows, чем та, для которой он был изначально написан. Но это также означает, что драйвер не сможет использовать новые возможности новой версии WDM-фреймворка. WDM-драйвера, главным образом, обратно не совместимы. Это означает, что нет никаких гарантий, что такой драйвер запустится на версии Windows, более старой чем та, для которой он был написан. Например, Windows XP может использовать драйвер, написанный для Windows 2000, но этот драйвер не может использовать новые возможности, добавленные в Windows XP. Однако, драйвер, написанный для Windows XP, может работать в Windows 2000, а может и не работать.
WDM-драйверы взаимодействуют друг с другом через пакеты запроса ввода - вывода (IRPs).
Технология WDM была разработана для увеличения функциональности и облегчения написания драйверов для Windows. Хотя WDM в основном был разработан для бинарной совместимости и совместимости на уровне исходного кода между Windows 98 и Windows 2000, зачастую это не всегда ожидаемо и поэтому специфические драйвера разрабатываются для каждой операционной системы отдельно.
WDM драйвера предназначены в общем для расширения стандартных возможностеи основного драйвера.
VxD, WDM и Windows 98
Операционные системы, основанные на Windows 98 (Windows 98, Windows 98 Second Edition и Windows Me), могут использовать оба стандарта драйверов - WDM и VxD. Обе модели драйверов могут предоставлять уникальные и различные возможности для одного и того же устройства. Однако, обычно более новый стандарт WDM предоставляет больше возможностей. Например, если TV-тюнер использует VxD-драйвер, это позволяет захватывать изображение разрешением 384 x 288 пикселей. Тот же TV-тюнер с драйвером WDM может захватывать изображение разрешением 768 x 576 пикселей.
Критика
Windows Driver Model, даже несмотря на значительные улучшения по сравнению с предшествующими ему VxD и Windows NT driver model, критикуется разработчиками драйверов [1], в основном по следующим причинам:
- WDM слишком сложен для изучения.
- Сложное взаимодействие с событиями управления питанием и Plug and Play. Это приводит ко множеству ситуаций, когда компьютеры, управляемые Windows, не могут перейти в спящий режим или правильно выйти из него из-за ошибок в коде драйвера.
- Отмену ввода/вывода практически невозможно правильно определить.
- Для каждого драйвера требуются тысячи строк сопровождающего кода.
- Нет поддержки для написания "чистых" драйверов пользовательского режима.
Было также много проблем из-за качества документации и примеров, предоставляемых Microsoft.
Из-за этих проблем Microsoft выпустила новый фреймворк, заменяющий WDM, названный Windows Driver Foundation, который включает в себя Kernel-Mode Driver Framework (KMDF) и User-Mode Driver Framework (UMDF). Windows Vista поддерживает оба стандарта: и WDM, и новый Windows Driver Foundation. KMDF также доступен для скачивания для Windows XP и даже Windows 2000, в то время, как UMDF доступен начиная только с Windows XP.
См. также
Литература
- Finnel, Lynn (2000). MCSE Exam 70-215, Microsoft Windows 2000 Server. Microsoft Press. ISBN 1-57231-903-8.
- Oney, Walter (2003). Programming the Windows Driver Model, Microsoft Press, ISBN 0-7356-1803-8.
Ссылки
- Windows driver API basics - Статья об основах разработки драйверов для звуковых карт, таких как WDM: ASIO, MME, DirectX и т.д. (англ.)
- Channel 9 Video - Интервью с командой, занимающейся разработкой управления устройствами и установкой в Microsoft, в основном Plug and Play (англ.)
- Kernel Survival guide - Свободный блокнот лекций описывающий основы создания Windows Drivers, программирование уровня ядра и управление памятью (англ.)
API и фреймворки Microsoft Графика Desktop Window Manager · Direct2D · Direct3D (extensions) · GDI / GDI+ · WPF · Windows Color System · Windows Image Acquisition · Windows Imaging Component Аудио DirectMusic · DirectSound · DirectX plugin · XACT · Speech API · XAudio2 Мультимедиа DirectX (Media Objects · Video Acceleration) · DirectInput · DirectShow · Image Mastering API · Managed DirectX · Media Foundation · XNA · Windows Media · Video for Windows Web MSHTML · RSS Platform · JScript · VBScript · BHO · XDR · SideBar Gadgets Доступ к данным Data Access Components · Extensible Storage Engine · ADO.NET · ADO.NET Entity Framework · Sync Framework · Jet Engine · MSXML · OLE DB · OPC Сеть Winsock (LSP) · Winsock Kernel · Filtering Platform · Network Driver Interface Specification · Windows Rally · BITS · P2P API · MSMQ · MS MPI · DirectPlay Коммуникации Messaging API · Telephony API · WCF Win32 console · Windows Script Host · WMI (extensions) · PowerShell · Task Scheduler · Offline Files · Shadow Copy · Windows Installer · Error Reporting · Event Log · Common Log File System Компонентная модель COM · COM+ · ActiveX · Distributed Component Object Model · .NET Framework Библиотеки Base Class Library (BCL) · Microsoft Foundation Classes (MFC) · Active Template Library (ATL) · Windows Template Library (WTL) Драйверы устройств Windows Driver Model · Windows Driver Foundation (KMDF · UMDF) · WDDM · NDIS · UAA · Broadcast Driver Architecture · VxD Безопасность Crypto API (CAPICOM) · Windows CardSpace · Data Protection API · Security Support Provider Interface (SSPI) .NET ASP.NET · ADO.NET · Base Class Library (BCL) · Remoting · Silverlight · TPL · WCF · WCS · WPF · WF Программное обеспечение EFx Factory · Enterprise Library · Composite UI · CCF · CSF IPC MSRPC · Dynamic Data Exchange (DDE) · Remoting · WCF Доступность Active Accessibility · UI Automation Текст и многоязная
поддержкаDirectWrite · Text Services Framework · Text Object Model · Input method editor · Language Interface Pack · Multilingual User Interface · Uniscribe Программные интерфейсы и фреймворки 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 Категории:- Microsoft Windows
- Драйверы
- Технологии в операционных системах
Wikimedia Foundation. 2010.