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) |