close

Modello di driver di Windows

Vai alla navigazione Vai alla ricerca

Windows Driver Model (WDM)  , un framework per i driver di dispositivo (noto anche come Win32 Driver Model e Windows NT Driver Model ), è stato introdotto in Windows 98 e Windows 2000 per sostituire l'obsoleto VxD utilizzato nelle versioni precedenti di Windows come Windows 95 e Windows 3.1 .

Panoramica

Il modello di driver di Microsoft Windows definisce un modello di driver per i sistemi operativi Windows 98, Windows 2000 e successivi, standardizzando i requisiti e riducendo il codice. Secondo il concetto di WDM, i driver possono essere binari compatibili . Quindi, ad esempio, un driver x86 scritto per Windows 98 può funzionare con Windows Me , Windows 2000 e persino Windows Vista . I driver WDM sono progettati per la compatibilità con le versioni successive, quindi un tale driver può essere eseguito su una versione successiva di Windows rispetto a quella per cui è stato originariamente scritto. Ma questo significa anche che il driver non sarà in grado di utilizzare le nuove funzionalità della nuova versione del framework WDM. I driver WDM sono per lo più incompatibili con le versioni precedenti . Ciò significa che non vi è alcuna garanzia che tale driver venga eseguito su una versione di Windows precedente a quella per cui è stato scritto. Ad esempio, Windows XP può utilizzare un driver scritto per Windows 2000, ma tale driver non può utilizzare le nuove funzionalità aggiunte in Windows XP. Tuttavia, un driver scritto per Windows XP può funzionare o meno su Windows 2000.

I driver WDM comunicano tra loro tramite I/O Request Packages (IRP).

La tecnologia WDM è stata sviluppata per aumentare la funzionalità e semplificare la scrittura di driver per Windows. Sebbene WDM sia stato progettato principalmente per la compatibilità binaria ea livello di origine tra Windows 98 e Windows 2000, spesso ciò non è sempre previsto e pertanto vengono sviluppati driver specifici per ciascun sistema operativo separatamente.

I driver WDM sono generalmente progettati per estendere le capacità standard del driver principale.

VxD, WDM e Windows 99

I sistemi operativi basati su Windows 98 (Windows 98, Windows 98 Second Edition e Windows Me) possono utilizzare sia gli standard dei driver WDM che VxD . Entrambi i modelli di driver possono fornire funzionalità uniche e diverse per lo stesso dispositivo. Tuttavia, il nuovo standard WDM di solito offre più opzioni. Ad esempio, se un sintonizzatore TV utilizza un driver VxD, può acquisire un'immagine con una risoluzione di 384 × 288 pixel. Lo stesso sintonizzatore TV con un driver WDM può catturare un'immagine di 768×576 pixel.

Critica

Il modello di driver di Windows, anche se rappresenta un miglioramento significativo rispetto al modello di driver VxD e Windows NT predecessore, è stato criticato dagli sviluppatori di driver [1] , principalmente per i seguenti motivi:

  • WDM è troppo difficile da imparare.
  • Interazione complessa con la gestione dell'alimentazione e gli eventi Plug and Play . Ciò porta a molte situazioni in cui i computer basati su Windows non sono in grado di ibernarsi o riattivarsi correttamente a causa di bug nel codice del driver.
  • La cancellazione degli I/O è quasi impossibile da identificare correttamente.
  • Ogni driver richiede migliaia di righe di codice di accompagnamento.
  • Non è disponibile il supporto per la scrittura di driver in modalità utente "puri".

C'erano anche molti problemi dovuti alla qualità della documentazione e degli esempi forniti da Microsoft.

A causa di questi problemi, Microsoft ha rilasciato un nuovo framework di sostituzione WDM chiamato Windows Driver Foundation , che include Kernel-Mode Driver Framework (KMDF) e User-Mode Driver Framework (UMDF). Windows Vista supporta sia WDM che la nuova Windows Driver Foundation. KMDF è disponibile per il download anche per Windows XP e persino Windows 2000, mentre UMDF è disponibile solo da Windows XP.

Vedi anche

Letteratura

  • Finnel, Lynn (2000). Esame MCSE 70-215, Microsoft Windows 2000 Server . Microsoft Press . ISBN 1-57231-903-8 .
  • Oney, Walter (2003). Programmazione del modello di driver di Windows , Microsoft Press , ISBN 0-7356-1803-8 .

Collegamenti