Gerarchia di oggetti framework
Avviso
UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Non vengono aggiunte nuove funzionalità a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2.
Gli esempi di UMDF 1 archiviati sono disponibili nell'aggiornamento degli esempi di driver di Windows 11 versione 22H2 - Maggio 2022.
Per altre info, vedi Introduzione con UMDF.
Nella figura seguente viene illustrata la gerarchia di oggetti del framework padre-figlio.
L'ambito di durata degli oggetti framework è determinato dalla posizione nella gerarchia e dalla modalità di creazione degli oggetti. L'ambito di durata degli oggetti framework rientra in una delle categorie seguenti:
Il framework controlla la creazione e la distruzione degli oggetti.
Il framework crea ed elimina definitivamente oggetti, ad esempio l'oggetto driver e l'oggetto dispositivo, in risposta agli eventi di sistema. Quando un driver in modalità utente chiama il metodo IWDFDriver::CreateDevice per creare l'oggetto dispositivo, il driver può facoltativamente registrarsi per ricevere una notifica dal framework prima che l'oggetto dispositivo venga eliminato definitivamente.
Il framework crea l'oggetto ; Tuttavia, il driver controlla quando l'oggetto viene rilasciato.
L'oggetto richiesta di I/O segue questo modello quando l'I/O viene presentato al driver. Il framework crea l'oggetto richiesta e la durata dell'oggetto richiesta è valida fino a quando il driver chiama il metodo IWDFIoRequest::Complete .
Il driver crea l'oggetto e associa l'oggetto a un altro oggetto framework.
Alcuni oggetti framework vengono creati da un metodo esposto da un'istanza dell'oggetto framework padre a cui gli oggetti devono essere associati per scopi di gestione della durata. Il metodo IWDFDevice::CreateIoQueue è un esempio di questo modello. Se una chiamata a IWDFDevice::CreateIoQueue ha esito positivo, la coda di I/O appena creata viene associata all'istanza del dispositivo rappresentata dall'interfaccia IWDFDevice . Quando l'oggetto padre viene eliminato definitivamente, il framework pulisce automaticamente le istanze figlio. I driver ricevono una notifica di questi eventi se i driver registrano le funzioni di callback appropriate con il framework.