Windows Driver Model
Il Windows Driver Model è un'architettura di driver compatibili con Windows 98, Windows 2000 e successori sviluppata da Microsoft.
Era lo standard secondo cui venivano scritti la maggior parte dei driver per i sistemi operativi Microsoft fino a Windows XP; anche Windows Vista supportava il WDM, anche se questo S.O. introduceva un nuovo formato per i driver (il Windows Driver Foundations) e molte novità nella gestione e installazione. I file dei driver WDM hanno estensione .sys.
Storia
Con l'avvento dei sistemi operativi a 32 bit, Microsoft mise sul mercato due famiglie di prodotti di aspetto simile ma internamente molto differenti: Windows 95 e Windows NT. Il primo era un diretto discendente di Windows 3.x e DOS, ed era pensato per funzionare con hardware molto limitati per un OS multiutente/multitask dotato di GUI (Intel 80386 con 4 MB di RAM). Inoltre doveva essere compatibile con tutti i software sviluppati per Windows a 16 bit e il DOS. Per ottenere questi due risultati Microsoft optò per un sistema ibrido 16/32 bit, con un risultato eccellente viste le premesse, ma non superlativo per quanto riguarda sicurezza e affidabilità. Windows NT, invece, era un sistema operativo a 32 bit puri, molto più affidabile, ma pesante per l'hardware dell'epoca e scarsamente compatibile con il software a 16 bit. Questa distinzione architetturale si tradusse nella necessità di sviluppare due versioni di device driver fra loro incompatibili, che i produttori hardware dovevano avere per supportare sia Windows 95 che Windows NT.
Per risolvere questo problema, per le successive versioni dei suoi sistemi operativi Microsoft ideò un nuovo modello di driver, chiamato Windows Driver Model, notevole passo avanti concettuale, ma non indolore. I driver WDM erano compatibili in avanti, ma non all'indietro: cioè funzionavano con Windows 98, Windows 2000, XP e loro successori, ma non con Windows 95 e Windows NT 4 (o se scritti specificamente per Windows XP, funzionavano con Vista ma non con Windows 2000). Inoltre, perché un driver WDM funzionasse sia con Windows 98 che con Windows 2000 era necessario che fosse scritto attentamente; molti produttori di hardware invece rilasciarono inizialmente driver WDM scritti in fretta e senza i dovuti controlli, che crearono molti problemi agli utenti e contribuirono a generare un'iniziale (ingiustificata) diffidenza verso il Windows Driver Model.
L'architettura WDM, per quanto abbia ridotto il numero di versioni di driver necessari ai produttori di hardware per il supporto ai loro prodotti, è molto complessa e non priva di problemi: questo ha portato la Microsoft a creare una nuova architettura di driver, la Windows Driver Foundation, che ha sostituito il WDM nelle versioni di Windows dalla 7 in poi.
Tipi di driver WDM
Il formato WDM prevede i seguenti tipi di driver:
- Driver di classe: possono dipendere dai driver miniport o da altri driver di classe e implementano funzioni specifiche. Possono essere caricati e scaricati dinamicamente quando non sono più necessari, come i moduli del kernel Linux.
- Driver miniport: sono driver di periferiche SCSI e USB, di interfacce di rete e periferiche audio. Sono specifici per il singolo dispositivo hardware e devono essere compatibili a livello binario fra Windows 98 e Windows 2000. Accedono al loro hardware attraverso un particolare driver di classe bus software.
- Driver bus software: Microsoft fornisce incorporati nei suoi sistemi operativi i driver per i bus più comuni (ISA/PNP, PCI, SCSI, USB, FireWire): se lo ritiene necessario, un produttore di hardware può scriverne uno proprio.
- Servizio al sistema operativo: sono driver di livello molto alto, che di solito astraggono completamente dall'hardware e non fanno riferimento a nessun driver miniport.
- Driver di periferica virtuale: sono un'eredità delle vecchie versioni di Windows e vengono usati per hardware obsoleto.
- Driver Windows NT 4.0: come sopra, ma per hardware pensato per Windows NT 4.
Caratteristiche
Requisiti
Non tutto l'hardware può essere gestito tramite driver WDM: per esempio l'hardware video non può essere gestito da WDM.
Svantaggi
- È molto difficile imparare a scrivere device driver WDM.
- L'interazione con il Plug and Play è problematica, e la gestione degli eventi di risparmio energetico lo è ancora di più. Questo portava ad avere periferiche che non si spegnevano quando il sistema andava in risparmio energetico, che impedivano al sistema di andare in sleep mode e/o che non riuscivano a riaccendersi o a tornare nello stato giusto al risveglio del sistema a causa di oscuri bug nel codice del loro driver.
- Era praticamente impossibile interrompere un'operazione di I/O in corso senza rendere instabile il sistema.
- Ogni driver, anche uno semplicissimo, era lungo centinaia di righe di codice.
- Il WDM non offre quasi nessun supporto per i driver in modalità utente (che non girino cioè a ring 0).
Voci correlate
- Windows Management Instrumentation
- Windows Driver Foundation
Collegamenti esterni
- Come scrivere un driver per Windows, su quequero.org. URL consultato il 31 luglio 2008 (archiviato dall'url originale il 26 luglio 2008).
V · D · M | |||||||
---|---|---|---|---|---|---|---|
Strumenti di sistema | App Installer · Configurazione di sistema · Console di ripristino · Controllo file di sistema · Deframmenta disco · Driver Verifier · DxDiag · Gestione attività · Gestione dispositivi · IExpress · Impostazioni · Management Console · Monitoraggio risorse · Monitor di sistema · Netsh · Pannello di controllo (Componenti) · PowerShell · Pulizia disco · Prompt dei comandi · Ripristino configurazione di sistema · Sysprep · System Information · System Policy Editor · Visualizzatore eventi · Windows Error Reporting · Windows Ink · Windows Installer · Windows Update (Windows Insider) · WinRE · WMI · Windows System Assessment Tool | ||||||
Applicazioni | Assistente vocale · Assistenza rapida · Blocco note · Calcolatrice · Calendario · Centro PC portatile Windows · Contatti · Cortana · Edge · Fax e scanner · Feedback Hub · File Manager · Film e TV · Foto · Fotocamera · Microsoft WordPad · Groove Musica · Il tuo telefono · Lente di ingrandimento · Mappa caratteri · Mappe · Memo · Messaggi · Meteo · Money · News · OneDrive · OneNote · Paint · Paint 3D · Pay · Phone Companion · Posta · Registratore vocale · Richiesta supporto · Riconoscimento vocale · Skype · Sport · Store · Strumento di cattura · Suggerimenti · Sveglie e orologio · Visualizzatore 3D · Windows Media Player · Windows Story Remix · Windows To Go · WordPad · Xbox Console Companion | ||||||
Shell | Aero · AutoPlay · AutoRun · Barra delle applicazioni · Centro notifiche (Windows) · ClearType · Esplora file · Menu start · Search (Cartella speciale · IFilter · Namespace · Ricerca salvata · Servizio di indicizzazione) · Stili di visualizzazione di Windows XP · Visualizzazione attività · Windows Spotlight | ||||||
Kernel | System Idle Process · Registro di sistema · DLL · EXE · NTLDR · Winlogon · Recovery Console · I/O · WinRE · WinPE · Kernel Patch Protection | ||||||
Servizi | BITS · CLFS · Copia shadow · Error Reporting · Multimedia Class Scheduler · Service Control Manager · Utilità di pianificazione · Wireless Zero Configuration | ||||||
File system | CDFS · DFS · exFAT · FAT · IFS · NTFS (Collegamento fisico · EFS · Junction point · Mount Point · Reparse point · Symbolic link · TxF) · ReFS · UDF | ||||||
Server | Active Directory · DFS Replication · Distributed Transaction Coordinator · DNS · Domini · Group Policy · Hyper-V · IIS · MSMQ · Profilo utente in roaming · Protezione di accesso alla rete · PWS · Reindirizzamento delle cartelle · Remote Desktop Services · Remote Differential Compression · Remote Installation Services · Rights Management Services · Server Core · Servizi di stampa per UNIX · SharePoint · System Resource Manager · Windows Deployment Services · Windows Media Services · WSUS | ||||||
Architettura | Architettura Windows NT · Console Windows · Copia shadow · CSRSS · Desktop Window Manager · Enhanced Write Filter · Graphics Device Interface · hal.dll · I/O request packet · Imaging Format · Kernel Transaction Manager · Librerie · Logical Disk Manager · LSASS · MinWin · NTLDR · Ntoskrnl.exe · Object Manager · Portable Executable (EXE · DLL) · Processo di avvio (NT · Vista) · Registro di sistema · Resource Protection · Security Account Manager · Server Message Block · SMSS · System Idle Process · USER · WHEA · Winlogon · WinUSB · XML Paper Specification | ||||||
Sicurezza | AppLocker · BitLocker · Credential Guard · Family Safety · Kernel Patch Protection · Mandatory Integrity Control · Prevenzione di esecuzione dei dati · Protected Media Path · Sicurezza e manutenzione · User Account Control · User Interface Privilege Isolation · Windows Defender · Windows Firewall | ||||||
Compatibilità | COMMAND.COM · Macchina virtuale DOS · Windows Subsystem for Linux (Microsoft POSIX) · Windows on Windows · WoW64 · Windows XP Mode | ||||||
API | Active Scripting (WSH · VBScript · JScript) · COM (ActiveX · ActiveX Document · COM Structured storage · DCOM · OLE · OLE Automation · Transaction Server) · DirectX · .NET Framework · Universal Windows Platform · Windows Mixed Reality · Windows Runtime · WinUSB | ||||||
Giochi | Solitaire Collection | ||||||
Obsoleti |
| ||||||
Spostati su Microsoft Store | Lettore DVD · Hover! · Mahjong · Minesweeper | ||||||
Deprecati | Internet Explorer · Media Player |