EVT_WDF_DEVICE_RELEASE_HARDWARE Rückruffunktion (wdfdevice.h)
[Gilt für KMDF und UMDF]
Die EvtDeviceReleaseHardware-Ereignisrückruffunktion eines Treibers führt Vorgänge aus, die benötigt werden, wenn auf ein Gerät nicht mehr zugegriffen werden kann.
Syntax
EVT_WDF_DEVICE_RELEASE_HARDWARE EvtWdfDeviceReleaseHardware;
NTSTATUS EvtWdfDeviceReleaseHardware(
[in] WDFDEVICE Device,
[in] WDFCMRESLIST ResourcesTranslated
)
{...}
Parameter
[in] Device
Ein Handle für ein Framework-Geräteobjekt.
[in] ResourcesTranslated
Ein Handle für ein Ressourcenlistenobjekt, das die übersetzten Hardwareressourcen identifiziert, die der Plug & Play-Manager dem Gerät zugewiesen hat.
Rückgabewert
Wenn die Rückruffunktion EvtDeviceReleaseHardware keine Fehler aufweist, muss sie STATUS_SUCCESS oder einen anderen status Wert zurückgeben, für den NT_SUCCESS(status) true entspricht. Andernfalls muss ein status Wert zurückgegeben werden, für den NT_SUCCESS(status) false entspricht. Geben Sie keine STATUS_NOT_SUPPORTED zurück.
Hinweise
Um eine EvtDeviceReleaseHardware-Rückruffunktion zu registrieren, muss Ihr Treiber WdfDeviceInitSetPnpPowerEventCallbacks aufrufen.
Wenn ein Treiber eine EvtDeviceReleaseHardware-Rückruffunktion registriert hat, ruft das Framework sie während der folgenden Übergänge auf:
- Ressourcenausgleich
- Geordnetes Entfernen
- Überraschendes Entfernen
Das Framework ruft die Rückruffunktion EvtDeviceReleaseHardware auf, nachdem das Framework das Senden von E/A-Anforderungen an das Gerät beendet hat, alle dem Gerät zugewiesenen Interrupts deaktiviert und getrennt wurden und das Gerät deaktiviert wurde.
Wenn das Framework EvtDeviceReleaseHardware aufruft, ist das PDO für das Gerät weiterhin vorhanden und kann nach Geräteinformationen abgefragt werden, die im ausgeschalteten Zustand verfügbar sind, z. B. PCI-Konfigurationszustand.
Darüber hinaus werden die übersetzten Hardwareressourcen, die das Framework an EvtDeviceReleaseHardware bereitstellt, weiterhin dem Gerät zugewiesen. Der Hauptzweck dieser Rückruffunktion besteht darin, diese Ressourcen freizugeben und insbesondere die Zuordnung aller Speicherressourcen aufzuheben, die der EvtDevicePrepareHardware-Rückruffunktion des Treibers zugeordnet sind. Der Treiber kann diesen Rückruf auch verwenden, um alle anderen Treiber- oder Geräteverwaltungsaktivitäten auszuführen, die möglicherweise im heruntergefahrenen Zustand erforderlich sind. Normalerweise sollten alle anderen Hardwareabschaltungsvorgänge in der Rückruffunktion EvtDeviceD0Exit des Treibers erfolgen.
Das Framework ruft immer die EvtDeviceReleaseHardware-Rückruffunktion des Treibers auf, wenn die EvtDevicePrepareHardware-Rückruffunktion des Treibers aufgerufen wurde, auch wenn EvtDevicePrepareHardware einen Fehlercode zurückgegeben hat.
Ein Treiber für ein Gerät mit untergeordneten Geräten kann die Reihenfolge steuern, in der das Framework die EvtDeviceReleaseHardware-Rückruffunktionen für das übergeordnete Gerät und seine untergeordneten Geräte aufruft, indem er WdfDeviceInitSetReleaseHardwareOrderOnFailure innerhalb seiner Rückruffunktion EvtDriverDeviceAdd aufruft .
Weitere Informationen dazu, wann das Framework diese Rückruffunktion aufruft, finden Sie unter PnP- und Energieverwaltungsszenarien.
Weitere Informationen zu Hardwareressourcen finden Sie unter Hardwareressourcen für Framework-Based Treiber.
Weitere Informationen zu Treibern, die diese Rückruffunktion bereitstellen, finden Sie unter Unterstützung der PnP- und Energieverwaltung in Funktionstreibern.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
KMDF-Mindestversion | 1.0 |
UMDF-Mindestversion | 2.0 |
Kopfzeile | wdfdevice.h (einschließen von Wdf.h) |
IRQL | PASSIVE_LEVEL |