Freigeben über


WdfDeviceInitSetReleaseHardwareOrderOnFailure-Funktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

Die WdfDeviceInitSetReleaseHardwareOrderOnFailure-Methode gibt an, ob das Framework unmittelbar nach einem Gerätefehler die EvtDeviceReleaseHardware-Rückruffunktion des Treibers aufruft oder wartet, bis alle untergeordneten Geräte entfernt wurden.

Syntax

void WdfDeviceInitSetReleaseHardwareOrderOnFailure(
  [in] PWDFDEVICE_INIT                       DeviceInit,
  [in] WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE ReleaseHardwareOrderOnFailure
);

Parameter

[in] DeviceInit

Ein Zeiger auf eine WDFDEVICE_INIT-Struktur .

[in] ReleaseHardwareOrderOnFailure

Ein WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE typisierter Enumerator, der angibt, wann das Framework die Rückruffunktion EvtDeviceReleaseHardware des Treibers aufruft.

Rückgabewert

Keine

Bemerkungen

In der Regel ruft das Framework die EvtDeviceReleaseHardware-Rückruffunktion eines Treibers auf, nachdem es die EvtDeviceReleaseHardware-Funktion für alle untergeordneten Geräte aufgerufen hat, die der Treiber aufzählt.

Im Falle eines Gerätein- oder Herunterschaltfehlers kann das Framework jedoch evtDeviceReleaseHardware des Treibers aufrufen, bevor es die EvtDeviceReleaseHardware-Funktionen für alle untergeordneten Geräte aufgerufen hat.

Um dieses Standardverhalten zu überschreiben, kann ein Treiber WdfDeviceInitSetReleaseHardwareOrderOnFailure aufrufen, um anzugeben, dass das Framework selbst in Gerätefehlerszenarien immer warten sollte, bis die EvtDeviceReleaseHardware-Funktion aufgerufen wurde, bis es die EvtDeviceReleaseHardware-Funktionen der untergeordneten Geräte aufgerufen hat.

Beispielsweise könnte ein Bustreiber, der den Hardwarezugriff im Namen seiner untergeordneten Geräte ausführt, diese Technik verwenden, um sicherzustellen, dass seine untergeordneten Geräte keinen Zugriff auf Hardware anfordern, nachdem das Framework die Rückruffunktion EvtDeviceReleaseHardware des Bustreibers aufgerufen hat.

Wenn ein Treiber WdfDeviceInitSetReleaseHardwareOrderOnFailure aufruft, muss er dies tun, bevor er WdfDeviceCreate aufruft. Weitere Informationen zum Aufrufen von WdfDeviceCreate finden Sie unter Erstellen eines Framework-Geräteobjekts.

Beispiele

Das folgende Codebeispiel zeigt, wie ein Bustreiber anfordern kann, dass das Framework auf den Aufruf seiner EvtDeviceReleaseHardware-Rückruffunktion wartet, bis alle untergeordneten Geräte entfernt wurden.

WdfDeviceInitSetReleaseHardwareOrderOnFailure(
                       DeviceInit,
                       WdfReleaseHardwareOrderOnFailureAfterDescendants
                       );

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.11
UMDF-Mindestversion 2.0
Kopfzeile wdfdevice.h (einschließen von Wdf.h)
Bibliothek Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <= DISPATCH_LEVEL
DDI-Complianceregeln DriverCreate(kmdf)

Weitere Informationen

EvtDeviceReleaseHardware

WDFDEVICE_INIT

WDF_RELEASE_HARDWARE_ORDER_ON_FAILURE