Freigeben über


Melden von Gerätefehlern

Es gibt drei Möglichkeiten, Gerätefehler zu melden:

Jede der oben genannten Methoden führt dazu, dass das Framework das Gerät effektiv entfernt. Wenn die Gerätetreiber andere Geräte im System nicht unterstützen, entlädt der E/A-Manager die Treiber.

Wenn die Geräteobjektrückruffunktion eines Treibers einen Wert zurückgibt, für den NT_SUCCESS(status) gleich FALSE ist, benachrichtigt das Framework den PnP-Manager, der dann versucht, das Gerät neu zu starten, indem er den Bustreiber auffordert, seine Geräte erneut aufzulisten. Ihr Treiber wird erneut geladen, wenn er entladen wurde.

Wenn Ihr Treiber WdfDeviceSetFailed aufruft, wird ein Eingabeargument bereitgestellt, das bestimmt, ob das Gerät neu gestartet wird. Die Argumentwerte sind WdfDeviceFailedAttemptRestart und WdfDeviceFailedNoRestart.

UMDF Vor UMDF 2.15 muss ein UMDF-Treiber diesen Wert auf WdfDeviceFailedNoRestart festlegen. 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. Weitere Informationen finden Sie unter WdfDeviceSetFailed.

Weitere Informationen zu diesen Argumentwerten finden Sie unter WDF_DEVICE_FAILED_ACTION. Bevor die Geräteobjektrückruffunktion eines Treibers mit einem Wert zurückgegeben wird, für den NT_SUCCESS(status) gleich FALSE ist, kann die Rückruffunktion Neustarts verhindern, indem WdfDeviceSetFailed mit dem Eingabeargument WdfDeviceFailedNoRestart aufgerufen wird. Andernfalls müssen diese Rückruffunktionen WdfDeviceSetFailed nicht aufrufen.

Wenn innerhalb kurzer Zeit mehrere aufeinanderfolgende Neustartversuche fehlschlagen (da der neu gestartete Treiber erneut einen Fehler meldet), beendet das Framework den Neustart des Geräts.

Wenn die EvtDeviceD0Entry-Funktion eines Busfahrers einen Wert zurückgibt, für den NT_SUCCESS(status) gleich FALSE ist, kann das Framework weiterhin die EvtDeviceD0Entry-Funktionen von Treibern aufrufen, die den untergeordneten Geräten des Busfahrers zugeordnet sind.