Freigeben über


WdfDeviceSetFailed-Funktion (wdfdevice.h)

[Gilt für KMDF und UMDF]

Die WdfDeviceSetFailed-Methode informiert das Framework darüber, dass beim Treiber ein Hardware- oder Softwarefehler aufgetreten ist, der einem angegebenen Gerät zugeordnet ist.

Syntax

void WdfDeviceSetFailed(
  [in] WDFDEVICE                Device,
  [in] WDF_DEVICE_FAILED_ACTION FailedAction
);

Parameter

[in] Device

Ein Handle für ein Framework-Geräteobjekt.

[in] FailedAction

Ein WDF_DEVICE_FAILED_ACTION typisierter Enumerator, der angibt, ob das Framework versuchen soll, die Treiber des angegebenen Geräts erneut zu laden.

Rückgabewert

Keine

Bemerkungen

Eine Fehlerüberprüfung tritt auf, wenn der Treiber ein ungültiges Objekthandle bereitstellt.

Wenn ein Treiber auf einen nicht wiederherstellbaren Hardware- oder Softwarefehler stößt, muss er WdfDeviceSetFailed aufrufen, damit das System die Treiber des Geräts entladen kann.

Ab UMDF-Version 2.15 kann ein UMDF-Treiber anfordern, dass der zugrunde liegende Bustreiber ihn erneut aufzählt, indem er WdfDeviceSetFailed aufruft , wobei FailedAction auf WdfDeviceFailedAttemptRestart festgelegt ist. Der Bustreiber muss die GUID_REENUMERATE_SELF_INTERFACE_STANDARD-Schnittstelle unterstützen.

Alternativ kann ein UMDF-Treiber FailedAction auf WdfDeviceFailedNoRestart festlegen.

Weitere Informationen zu WdfDeviceSetFailed finden Sie unter Melden von Gerätefehlern.

Beispiele

Im folgenden Codebeispiel wird das Framework darüber informiert, dass ein Fehler aufgetreten ist. Wenn die Treiber des angegebenen Geräts andere Geräte nicht unterstützen, entlädt das Framework die Treiber und versucht dann, sie erneut zu laden.

WdfDeviceSetFailed(
                   device,
                   WdfDeviceFailedAttemptRestart
                   );

Anforderungen

Anforderung Wert
Zielplattform Universell
KMDF-Mindestversion 1.0
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), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)