Freigeben über


DEVICE_RESET_HANDLER Rückruffunktion (wdm.h)

Die DeviceReset Routine wird verwendet, um ein fehlerhaftes Gerät zurückzusetzen und wiederherzustellen.

Syntax

DEVICE_RESET_HANDLER DeviceResetHandler;

NTSTATUS DeviceResetHandler(
  [in]           PVOID InterfaceContext,
  [in]           DEVICE_RESET_TYPE ResetType,
  [in]           ULONG Flags,
  [in, optional] PVOID ResetParameters
)
{...}

Parameter

[in] InterfaceContext

Ein Zeiger auf schnittstellenspezifische Kontextinformationen. Der Aufrufer übergibt den Wert, der als Context Member der DEVICE_RESET_INTERFACE_STANDARD-Struktur für die Schnittstelle übergeben wird.

[in] ResetType

Der Typ der Zurücksetzung, die angefordert wird. Legen Sie diesen Parameter auf einen der folgenden DEVICE_RESET_TYPE Enumerationswerte fest.

  • FunctionLevelDeviceReset. Geben Sie diesen Wert an, um eine Zurücksetzung auf Funktionsebene anzufordern, die auf ein bestimmtes Gerät beschränkt ist.

  • PlatformLevelDeviceReset. Geben Sie diesen Wert an, um eine Zurücksetzung auf Plattformebene anzufordern, die sich auf ein bestimmtes Gerät und alle anderen Geräte auswirkt, die über die gleiche Netzschiene oder Zurücksetzungsleitung mit ihr verbunden sind.

Weitere Informationen dazu, wie Resets auf Funktionsebene und Plattformebene im Gerätestapel implementiert werden, finden Sie unter Arbeiten mit dem GUID_DEVICE_RESET_INTERFACE_STANDARD.

[in] Flags

Auf 0 festgelegt. Derzeit sind keine Flags für diese Routine definiert.

[in, optional] ResetParameters

Wenn der Aufrufer eine Zurücksetzung auf Funktionsebene anfordert, kann dieser optionale Parameter auf eine FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS Struktur verweisen, die eine Rückrufroutine angibt, die aufgerufen wird, wenn die Zurücksetzung abgeschlossen ist.

Rückgabewert

Diese Routine gibt STATUS_SUCCESS zurück, wenn der angeforderte Vorgang erfolgreich ist. Andernfalls wird ein entsprechender NTSTATUS-Fehlercode zurückgegeben.

Bemerkungen

Wenn ein Funktionstreiber erkennt, dass das Gerät nicht ordnungsgemäß funktioniert, sollte zuerst ein Zurücksetzen auf Funktionsebene versucht werden. Wenn ein Zurücksetzen auf Funktionsebene das Problem nicht behebt, kann der Treiber eine invasivere Zurücksetzung auf Plattformebene versuchen, aber eine Zurücksetzung auf Plattformebene sollte nur als letzte Option verwendet werden.

Bei PASSIVE_LEVEL muss eine Zurücksetzung auf Funktionsebene oder eine Zurücksetzung auf Plattformebene ausgeführt werden.

Weitere Informationen zu Zurücksetzungen auf Funktionsebene und Plattformebene finden Sie unter Arbeiten mit dem GUID_DEVICE_RESET_INTERFACE_STANDARD.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 10
Zielplattform- Desktop
Header- wdm.h (include Wdm.h)

Siehe auch

Arbeiten mit dem GUID_DEVICE_RESET_INTERFACE_STANDARD

IRP_MN_QUERY_INTERFACE