Condividi tramite


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.

Gerarchia di oggetti padre-figlio di umdf.

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.