Windows Driver Foundation: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Kormoran (discussione | contributi)
Nuova pagina: '''Windows Driver Foundations''', o '''WDF''' è un framework creato da Microsoft per la scrittura dei device driver dei propri sistemi operativi Windows. Lo scopo del WDF è quello d...
 
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(15 versioni intermedie di 13 utenti non mostrate)
Riga 1:
{{F|software|giugno 2018}}
'''Windows Driver Foundations''', o '''WDF''', è un [[framework]] creato da [[Microsoft]] per la scrittura dei [[Driver|device driver ]] dei propri sistemi operativi [[Microsoft Windows|Windows]]. Lo scopo del WDF è quello di ovviare ad una serie di problemi, evidenziatisi con il tempo, del [[Windows Driver Model]] creato per [[Windows 98]]/[[Windows NT|NT]].
 
== Descrizione ==
Il WDF è completamente [[Programmazione a eventi|event-driven]] ed [[Programmazione orientata agli oggetti|orientato agli oggetti]], specificamente pensato per alleggerire il lavoro dei programmatori permettendo loro di concentrarsi sull'hardware da gestire e sulle funzioni software da implementare, fornendo dei comportamenti di default per gli eventi che non interessano. Nel WDF esistono due sole classi di driver :
* KMDF, Kernel-Mode Driver Foundations, per tutti quei driver che devono dialogare direttamente con l'hardware o lavorano comunque a contatto molto stretto con esso: il loro codice gira a ring zero, con gli stessi privilegi del sistema operativo.
 
* KMDF, Kernel-Mode Driver Foundations, per tutti quei driver che devono dialogare direttamente con l'hardware o lavorano comunque a contatto molto stretto con esso: il loro codice gira a ring zero, con gli stessi privilegi del [[sistema operativo]].
* UMDF, User-Mode Driver Foundations, per i driver che non hanno bisogno di dialogare con l'hardware ma possono connettersi al loro dispositivo attraverso un bus di collegamento (sfruttando quindi un altro driver). Per esempio driver per fotocamere digitali, player multimediali, dispositivi GPS ecc.
 
Entrambi i tipi di driver contengono di default il codice ETW (Enhanced Tracing for Windows), che permette il tracciamento degli eventi software ricevuti, permettendo un più facile [[Debugging|debug]] dei driver stessi. Il nuovo framework supporta inoltre automaticamente la [[firma digitale]] dei drivers, e introduce il ''versioning'', un meccanismo che permetterà ai driver WDF di adattarsi alla particolare versione di Windows su cui sono installati. Per gli sviluppatori sono disponibili inoltre degli strumenti software aggiuntivi, PREfast e SDV, per eseguire la verifica statica del driver a tempo di compilazione. Ulteriore novità del WDF rispetto al passato è il supporto (solo il supporto, per ora) alla ''driver isolation'', cioè il disaccoppiamento dei driver dal resto del kernel, per dare modo al
sistema operativo di superare un eventuale errore interno del driver senza bloccarsi o crashareandare in crash.
 
Rispetto al precedente WDM le migliorie sono notevoli:
*Non esistono più decine di modelli di driver diversi (miniport, di classe, di bus ecc.);
*Le [[Struttura dati|strutture dati]] interne del sistema operativo non sono più esposte al codice dei driver;
*Entrambe le classi di driver WDF implementano internamente quasi tutta la logica di tracciamento degli stati interni di driver, hardware e sistema operativo necessaria per implementare il [[Plug and play|Plug and Play]] e la gestione energetica, eliminando così la principale fonte di errori di programmazione nei driver;
*Entrambe le classi di driver WDF gestiscono automaticamente, in quanto event-driven, la ricezione e la trasmissione degli IRP (I/O Request Packet) fra il kernel, i dispositivi e gli altri driver;
 
LaLe principaleprincipali contropartitacontropartite perdi queste migliorie èsono una maggior dimensione del codice per i driver, che occuperanno quindi più spazio in memoria, e una probabile minor velocità, dovuta all'overhead dei meccanismi di separazione del WDF.
 
==Vedi ancheVoci correlate ==
*[[Windows Driver Model]]
*[[Driver]]
*[[Windows 98]]
 
== Collegamenti esterni ==
[[categoria:Microsoft Windows]]
* {{Collegamenti esterni}}
 
{{portale|Microsoft}}
 
[[enCategoria:Microsoft Windows Driver Foundation]]
[[zh:Windows Driver Foundation]]