EVT_WDF_DEVICE_RELEASE_HARDWARE funzione di callback (wdfdevice.h)
[Si applica a KMDF e UMDF]
La funzione di callback dell'evento EvtDeviceReleaseHardware di un driver esegue operazioni necessarie quando un dispositivo non è più accessibile.
Sintassi
EVT_WDF_DEVICE_RELEASE_HARDWARE EvtWdfDeviceReleaseHardware;
NTSTATUS EvtWdfDeviceReleaseHardware(
[in] WDFDEVICE Device,
[in] WDFCMRESLIST ResourcesTranslated
)
{...}
Parametri
[in] Device
Handle per un oggetto dispositivo framework.
[in] ResourcesTranslated
Handle a un oggetto elenco di risorse che identifica le risorse hardware tradotte assegnate dal gestore Plug and Play al dispositivo.
Valore restituito
Se la funzione di callback EvtDeviceReleaseHardware non rileva errori, deve restituire STATUS_SUCCESS o un altro valore di stato per il quale NT_SUCCESS(stato) è uguale a TRUE. In caso contrario, deve restituire un valore di stato per il quale NT_SUCCESS(stato) equivale a FALSE. Non restituire STATUS_NOT_SUPPORTED.
Commenti
Per registrare una funzione di callback EvtDeviceReleaseHardware , il driver deve chiamare WdfDeviceInitSetPnpPowerEventCallbacks.
Se un driver ha registrato una funzione di callback EvtDeviceReleaseHardware , il framework lo chiama durante le transizioni seguenti:
- Ribilanciamento delle risorse
- Rimozione ordinata
- Rimozione delle sorprese
Il framework chiama la funzione di callback EvtDeviceReleaseHardware dopo che il framework ha interrotto l'invio di richieste di I/O al dispositivo, eventuali interruzioni assegnate al dispositivo sono state disabilitate e disconnesse e il dispositivo è stato disattivato.
Quando il framework chiama EvtDeviceReleaseHardware, il PDO per il dispositivo esiste ancora e può essere sottoposto a query per le informazioni sul dispositivo disponibili nello stato disattivato, ad esempio lo stato di configurazione PCI.
Inoltre, le risorse hardware tradotte fornite dal framework a EvtDeviceReleaseHardware sono ancora assegnate al dispositivo. Lo scopo principale di questa funzione di callback consiste nel rilasciare tali risorse e in particolare per annullare il mapping di tutte le risorse di memoria mappate dalla funzione di callback evtDevicePrepareHardware del driver. Il driver può anche usare questo callback per eseguire qualsiasi altra attività di gestione del driver o del dispositivo che potrebbe essere necessaria nello stato inattivo. In genere, tutte le altre operazioni di arresto hardware devono essere eseguite nella funzione di callback EvtDeviceD0Exit del driver.
Il framework chiama sempre la funzione di callback evtDeviceReleaseHardware del driver se la funzione di callback evtDevicePrepareHardware del driver è stata chiamata, anche se EvtDevicePrepareHardware ha restituito un codice di errore.
Un driver per un dispositivo con dispositivi figlio può controllare l'ordine in cui il framework chiama le funzioni di callback EvtDeviceReleaseHardware per il dispositivo padre e i relativi figli chiamando WdfDeviceInitSetReleaseHardwareOrderOnFailure dall'interno della sua funzione di callback EvtDriverDeviceAdd callback.
Per altre informazioni su quando il framework chiama questa funzione di callback, vedere Scenari di Gestione energia e PnP.
Per altre informazioni sulle risorse hardware, vedere Risorse hardware per i driver di Framework-Based.
Per altre informazioni sui driver che forniscono questa funzione di callback, vedere Supporto di PnP e Power Management nei driver di funzione.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Versione KMDF minima | 1.0 |
Versione UMDF minima | 2,0 |
Intestazione | wdfdevice.h (includere Wdf.h) |
IRQL | PASSIVE_LEVEL |