Supporto di PnP e gestione dell'energia nei driver di funzione
I driver di funzione controllano il funzionamento di un dispositivo e quindi accedono all'hardware del dispositivo. Questi driver devono supportare operazioni PnP e risparmio energia e in genere registrare diverse funzioni di callback degli eventi quando creano oggetti dispositivo.
In genere, la funzione di callback dell'evento EvtDriverDeviceAdd di un driver di funzione chiama WdfDeviceInitSetPnpPowerEventCallbacks per registrare le seguenti funzioni di callback:
EvtDevicePrepareHardware, che fornisce le risorse assegnate dal sistema del dispositivo al driver. Il driver può eseguire operazioni, come mappare la memoria del dispositivo relativa al bus nello spazio degli indirizzi virtuali del processore, che permettono al driver di accedere all'hardware.
EvtDeviceD0Entry, che esegue operazioni, ad esempio il caricamento del firmware, necessarie ogni volta che il dispositivo del driver entra nello stato di lavoro (D0).
EvtDeviceD0Exit, che esegue operazioni necessarie ogni volta che il dispositivo del driver lascia lo stato di lavoro (D0) e entra in uno stato a basso consumo.
EvtDeviceReleaseHardware, che rilascia tutte le risorse di sistema allocate da EvtDevicePrepareHardware .
Come tutte le funzioni di callback definite dal framework, quelle nell'elenco precedente sono facoltative. È necessario fornirli solo se il conducente ne ha bisogno.
I driver di funzione possono chiamare WdfDeviceSetPnpCapabilities e WdfDeviceSetPowerCapabilities per segnalare le funzionalità di risparmio energia e PnP di un dispositivo al sistema operativo.
In genere, si useranno le code di I/O gestite dal framework per la maggior parte delle richieste di I/O. Se una coda di I/O è gestita dall'alimentazione, il framework recapita le richieste al driver solo se il dispositivo è nello stato funzionante (D0). Per ulteriori informazioni sulle code di I/O gestite dall'energia, vedere Gestione energetica per le code di I/O.
In genere, il driver di funzione del dispositivo è il responsabile della politica di alimentazione per lo stack di driver. Il proprietario dei criteri di alimentazione determina lo stato di alimentazione del dispositivo appropriato per un dispositivo e invia richieste allo stack di driver del dispositivo ogni volta che lo stato di alimentazione del dispositivo deve cambiare. Per i driver basati su framework, il framework gestisce questa responsabilità, pertanto non è necessario fornire codice nel driver per richiedere modifiche nello stato di alimentazione di un dispositivo.
Il proprietario dei criteri di risparmio energia ha due responsabilità aggiuntive: controlla la capacità di un dispositivo di entrare in uno stato di basso consumo quando è inattivo e il sistema rimane nello stato di lavoro (S0), e controlla la capacità del dispositivo di generare un segnale di riattivazione quando rileva un evento esterno dallo stato di basso consumo. Se il dispositivo dispone di funzionalità di inattività o riattivazione, il driver di funzione può fornire funzioni di callback aggiuntive. Per ulteriori informazioni sulle responsabilità del proprietario della politica energetica, vedere Proprietà della Politica Energetica.