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 была разработана для увеличения функциональности и облегчения написания драйверов для Windows. Хотя WDM в основном был разработан для бинарной совместимости и совместимости на уровне исходного кода между Windows 98 и Windows 2000, зачастую это не всегда ожидаемо и поэтому специфические драйверы разрабатываются для каждой операционной системы отдельно.

Операционные системы, основанные на Windows 98 (Windows 98, Windows 98 Second Edition и Windows Me), могут использовать оба стандарта драйверов — WDM и VxD. Обе модели драйверов могут предоставлять уникальные и различные возможности для одного и того же устройства. Однако обычно более новый стандарт WDM предоставляет больше возможностей. Например, если TV-тюнер использует VxD-драйвер, это позволяет захватывать изображение разрешением 384 × 288 пикселей. Тот же TV-тюнер с драйвером WDM может захватывать изображение разрешением 768 × 576 пикселей.

Windows Driver Model, даже несмотря на значительные улучшения по сравнению с предшествующими ему VxD и Windows NT driver model, критикуется разработчиками драйверов[1], в основном по следующим причинам: