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) |