Condividi tramite


PnP Manager Ridistribuisce le risorse di sistema (UMDF 1)

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.

Se un utente aggiunge un dispositivo a un sistema e se il dispositivo richiede risorse di sistema già assegnate dal gestore PnP a un altro dispositivo, il gestore PnP tenta di riassegnare le risorse.

Durante questo processo, il gestore PnP arresta i dispositivi e li disconnette dagli stati di lavoro (D0). Distribuisce quindi nuovi elenchi di risorse ai dispositivi in modo che possano essere riavviati, usando le nuove risorse.

Durante la ridistribuzione delle risorse, il gestore PnP non modificherà l'assegnazione di risorse di un dispositivo se uno dei driver basati su UMDF del dispositivo ha fornito una funzione di callback IPnpCallback::OnQueryStop e la funzione di callback ha veto la riassegnazione.

Sequenza di alimentazione
Per ogni driver di filtro e funzione basata su UMDF che supporta l'arresto del dispositivo, il framework esegue le operazioni seguenti, in sequenza, un driver alla volta, a partire dal driver più alto nello stack di driver:

  1. Se il driver usa I/O autogestito, il framework chiama la funzione di callback IPnpCallbackSelfManagedIo::OnSelfManagedIoSuspend callback del driver.

  2. Il framework arresta tutte le code di I/O gestite dal dispositivo.

  3. Il framework chiama la funzione di callback IPnpCallback::OnD0Exit del driver (se esistente).

  4. Il framework chiama la funzione di callback IPnpCallbackHardware::OnReleaseHardware (se esistente) passando l'elenco di risorse hardware assegnate dal gestore PnP al dispositivo.

Per visualizzare un diagramma che mostra questi passaggi, vedere la figura relativa alla rimozione ordinata in Un utente scollega un dispositivo.

Sequenza di alimentazione
Per ogni driver di filtro e funzione basata su UMDF che supporta il dispositivo, il framework esegue le operazioni seguenti, in sequenza, un driver alla volta, a partire dal driver più basso nello stack di driver:

  1. Il framework chiama la funzione di callback IPnpCallbackHardware::OnPrepareHardware (se presente), passando l'elenco di risorse hardware assegnate dal gestore PnP al dispositivo.

  2. Il framework chiama la funzione di callback IPnpCallback::OnD0Entry del driver (se esistente).

  3. Il framework riavvia tutte le code di I/O gestite dal dispositivo.

  4. Se il driver usa I/O autogestito, il framework chiama la funzione di callback IPnpCallbackSelfManagedIo::OnSelfManagedIoRestart .

Per visualizzare un diagramma che mostra questi passaggi, vedere Plugs utente in un dispositivo.