Freigeben über


EVT_WDF_DEVICE_RELEASE_HARDWARE Rückruffunktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

Die EvtDeviceReleaseHardware eines Treibers Ereignisrückruffunktion 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 zu einem Framework-Geräteobjekt.

[in] ResourcesTranslated

Ein Handle zu einem Ressourcenlistenobjekt, das die übersetzten Hardwareressourcen identifiziert, die der Plug- und Play-Manager dem Gerät zugewiesen hat.

Rückgabewert

Wenn die EvtDeviceReleaseHardware Rückruffunktion keine Fehler aufweist, muss sie STATUS_SUCCESS oder einen anderen Statuswert zurückgeben, für den NT_SUCCESS(Status) TRUEentspricht. Andernfalls muss ein Statuswert zurückgegeben werden, für den NT_SUCCESS(Status) FALSE-entspricht. Geben Sie STATUS_NOT_SUPPORTED nicht zurück.

Bemerkungen

Um eine EvtDeviceReleaseHardware Rückruffunktion zu registrieren, muss Ihr Treiber WdfDeviceInitSetPnpPowerEventCallbacksaufrufen.

Wenn ein Treiber eine EvtDeviceReleaseHardware Rückruffunktion registriert hat, ruft das Framework ihn während der folgenden Übergänge auf:

  • Ressource rebalancing
  • Geordnetes Entfernen
  • Überraschungsentfernung

Das Framework ruft die EvtDeviceReleaseHardware Rückruffunktion auf, nachdem das Framework das Senden von E/A-Anforderungen an das Gerät beendet hat, alle dem Gerät zugewiesenen Unterbrechungen deaktiviert und getrennt wurden und das Gerät deaktiviert wurde.

Wenn das Framework die EvtDeviceReleaseHardwareaufruft, ist der 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 für 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 vom Treiber EvtDevicePrepareHardware zugeordneten Rückruffunktion zugeordnet sind. Der Treiber kann diesen Rückruf auch verwenden, um alle anderen Treiber- oder Geräteverwaltungsaktivitäten auszuführen, die möglicherweise im Zustand "Heruntergeschaltet" erforderlich sind. In der Regel sollten alle anderen Hardware heruntergefahrenen Vorgänge in der EvtDeviceD0Exit Rückruffunktion des Treibers ausgeführt werden.

Das Framework ruft immer die EvtDeviceReleaseHardware Rückruffunktion auf, wenn die EvtDevicePrepareHardware Rückruffunktion des Treibers aufgerufen wurde, auch wenn EvtDevicePrepareHard ware 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 Elemente aufruft, indem WdfDeviceInitSetReleaseHardwareOrderOnFailure innerhalb der EvtDriverDeviceAdd Rückruffunktion aufgerufen wird.

Weitere Informationen dazu, wann das Framework diese Rückruffunktion aufruft, finden Sie unter PnP- und Power Management-Szenarien.

Weitere Informationen zu Hardwareressourcen finden Sie unter Hardwareressourcen für Framework-Based Drivers.

Weitere Informationen zu Treibern, die diese Rückruffunktion bereitstellen, finden Sie unter Unterstützen von PnP und Power Management in Funktionstreibern.

Anforderungen

Anforderung Wert
Zielplattform- Universal
Minimale KMDF-Version 1.0
Mindest-UMDF-Version 2.0
Header- wdfdevice.h (einschließen Wdf.h)
IRQL- PASSIVE_LEVEL

Siehe auch

EvtDevicePrepareHardware