# Windows Driver Model

Het Windows Driver Model (WDM) is een framework van Microsoft voor apparaatstuurprogramma's dat werd geïntroduceerd in Windows 98 en Windows 2000 ter vervanging van het verouderde VxD en NT Driver Model. Het werd in 2009 opgevolgd door de Windows Driver Foundation.

## Beschrijving

Met de komst van 32-bits besturingssystemen bracht Microsoft twee families op de markt van gelijkaardige, maar intern zeer verschillende producten: Windows 95 en Windows NT. De eerste was een directe afstammeling van Windows 3.x en DOS, en was bedoeld om te werken met zeer beperkte hardware voor een met grafische gebruikersomgeving (GUI) uitgerust besturingssysteem. Het moest ook compatibel zijn met alle software die is ontwikkeld voor 16-bit Windows en DOS. Om dit doel te bereiken koos Microsoft voor een 16/32 bit-hybride systeem. Windows NT, aan de andere kant, is een puur 32-bits besturingssysteem, veel betrouwbaarder, maar zwaar op de hardware van die tijd en matig compatibel met 16-bits software. Door dit verschil in ontwerp was men genoodzaakt om twee parallelle en incompatibele versies van apparaatstuurprogramma's te ontwikkelen, die hardwarefabrikanten moesten aanleveren om zowel Windows 95 als Windows NT te ondersteunen.
Om dit probleem op te lossen, bedacht Microsoft voor volgende versies van zijn besturingssystemen een nieuw stuurprogrammamodel, het Windows Driver Model, een belangrijke conceptuele stap voorwaarts, dat ook opnieuw een probleem introduceerde. De WDM-stuurprogramma's zijn voorwaarts compatibel, maar niet achterwaarts compatibel. Dit betekent in de praktijk dat een stuurprogramma voor Windows 2000 ook zal werken onder Windows XP, maar niet omgekeerd.
Zo brachten veel hardwarefabrikanten vroege versies van WDM-stuurprogramma's uit die snel en zonder de nodige controles waren geschreven, wat voor veel problemen voor gebruikers zorgde en bijdroeg aan een aanvankelijk (onterecht) wantrouwen jegens het Windows Driver Model.
Hoewel de WDM-architectuur het aantal stuurprogrammaversies heeft verminderd dat hardwarefabrikanten nodig hebben om hun producten te ondersteunen, is het zeer complex: dit heeft Microsoft ertoe gebracht een nieuwe en vereenvoudigde architectuur voor stuurprogramma's te creëren, de Windows Driver Foundation, die WDM heeft vervangen in versies van Windows 7 en later.

## Ondersteuning

Microsoft startte in 1998 in Windows 98 met ondersteuning voor WDM en men bood tot Windows Me nog de mogelijkheid om stuurprogramma's in VxD-formaat te schrijven. WDM-stuurprogramma's zijn compatibel voor Windows 98, Windows 98 Second Edition, Windows ME, Windows 2000, Windows XP, Windows Server 2003 en Windows Vista.

## Soorten WDM-stuurprogramma's

Het WDM-formaat biedt de volgende typen stuurprogramma's:
* Klasse-stuurprogramma's: dynamische stuurprogramma's voor specifieke functies. Kunnen uit het geheugen worden verwijderd wanneer deze niet langer nodig zijn.
* Miniport-stuurprogramma's: voor aansturing van SCSI- en USB-randapparatuur, netwerkinterfaces en audiorandapparatuur.
* Softwarebusstuurprogramma's: stuurprogramma's voor de meest voorkomende bussen (ISA, PCI, SCSI, USB, FireWire) die in zijn besturingssystemen zijn ingebouwd.
* Besturingssysteemservice: stuurprogramma's die meestal volledig abstract zijn van de hardware.
* Virtuele apparaatstuurprogramma's: worden gebruikt voor verouderde hardware.
* Windows NT 4.0-stuurprogramma: zoals hierboven, maar voor hardware ontworpen voor Windows NT 4.