DEVICE_RESET_HANDLER fonction de rappel (wdm.h)

La routine DeviceReset est utilisée pour réinitialiser et récupérer un appareil défectueux.

Syntaxe

DEVICE_RESET_HANDLER DeviceResetHandler;

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

Paramètres

[in] InterfaceContext

Pointeur vers des informations de contexte spécifiques à l’interface. L’appelant transmet la valeur qui est passée en tant que membre context de la structure DEVICE_RESET_INTERFACE_STANDARD pour l’interface.

[in] ResetType

Type de réinitialisation demandée. Définissez ce paramètre sur l’une des valeurs d’énumération DEVICE_RESET_TYPE suivantes.

  • FunctionLevelDeviceReset. Spécifiez cette valeur pour demander une réinitialisation au niveau de la fonction, qui est limitée à un appareil spécifique.

  • PlatformLevelDeviceReset. Spécifiez cette valeur pour demander une réinitialisation au niveau de la plateforme, ce qui affecte un appareil spécifique et tous les autres appareils qui y sont connectés via le même rail d’alimentation ou la même ligne de réinitialisation.

Pour plus d’informations sur la façon dont les réinitialisations au niveau de la fonction et de la plateforme sont implémentées dans la pile des appareils, consultez Utilisation du GUID_DEVICE_RESET_INTERFACE_STANDARD.

[in] Flags

Définit la valeur 0. Actuellement, aucun indicateur n’est défini pour cette routine.

[in, optional] ResetParameters

Si l’appelant demande une réinitialisation d’appareil au niveau de la fonction, ce paramètre facultatif peut pointer vers une structure FUNCTION_LEVEL_DEVICE_RESET_PARAMETERS qui spécifie une routine de rappel appelée lorsque la réinitialisation est terminée.

Valeur retournée

Cette routine retourne STATUS_SUCCESS si l’opération demandée réussit. Sinon, elle retourne un code d’erreur NTSTATUS approprié.

Remarques

Si un pilote de fonction détecte que l’appareil ne fonctionne pas correctement, il doit d’abord tenter une réinitialisation au niveau de la fonction. Si une réinitialisation au niveau de la fonction ne résout pas le problème, le pilote peut tenter une réinitialisation au niveau de la plateforme plus invasive, mais une réinitialisation au niveau de la plateforme ne doit être utilisée que comme option finale.

Une réinitialisation au niveau de la fonction ou une réinitialisation au niveau de la plateforme doit être effectuée à PASSIVE_LEVEL.

Pour plus d’informations sur les réinitialisations au niveau de la fonction et de la plateforme, consultez Utilisation de l’GUID_DEVICE_RESET_INTERFACE_STANDARD.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (include Wdm.h)

Voir aussi

Utilisation du GUID_DEVICE_RESET_INTERFACE_STANDARD

IRP_MN_QUERY_INTERFACE