Share via


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 Kontextmember der DEVICE_RESET_INTERFACE_STANDARD-Struktur für die Schnittstelle übergeben wird.

[in] ResetType

Der Typ der angeforderten Zurücksetzung. 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, was sich auf ein bestimmtes Gerät und alle anderen Geräte auswirkt, die über dieselbe Netzschiene oder Rücksetzleitung mit dem Gerät verbunden sind.

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

[in] Flags

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

[in, optional] ResetParameters

Wenn der Aufrufer eine Gerätezurü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 das Zurücksetzen abgeschlossen ist.

Rückgabewert

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

Hinweise

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

Eine Zurücksetzung auf Funktionsebene oder ein Zurücksetzen auf Plattformebene muss bei PASSIVE_LEVEL durchgefü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
Unterstützte Mindestversion (Client) Windows 10
Zielplattform Desktop
Kopfzeile wdm.h (wdm.h einschließen)

Weitere Informationen

Arbeiten mit dem GUID_DEVICE_RESET_INTERFACE_STANDARD

IRP_MN_QUERY_INTERFACE