Partager via


EVT_WDF_DEVICE_D0_ENTRY fonction de rappel (wdfdevice.h)

[S’applique à KMDF et UMDF]

La fonction de rappel d’événement EvtDeviceD0Entry d’un pilote effectue les opérations nécessaires lorsque l’appareil du pilote passe à l’état d’alimentation D0.

Syntaxe

EVT_WDF_DEVICE_D0_ENTRY EvtWdfDeviceD0Entry;

NTSTATUS EvtWdfDeviceD0Entry(
  [in] WDFDEVICE Device,
  [in] WDF_POWER_DEVICE_STATE PreviousState
)
{...}

Paramètres

[in] Device

Handle pour un objet d’appareil d’infrastructure.

[in] PreviousState

Énumérateur WDF_POWER_DEVICE_STATE qui identifie l’état d’alimentation précédent de l’appareil.

Valeur retournée

Si la fonction de rappel EvtDeviceD0Entry ne rencontre aucune erreur, elle doit retourner STATUS_SUCCESS ou une autre valeur de status pour laquelle NT_SUCCESS(status) est égal à TRUE. Sinon, elle doit retourner une valeur status pour laquelle NT_SUCCESS(status) est false.

Pour plus d’informations sur les valeurs de retour de cette fonction de rappel, consultez Signalement des défaillances d’appareils.

L’infrastructure n’appelle pas la fonction de rappel EvtDeviceD0Exit du pilote après que la fonction de rappel EvtDeviceD0Entry retourne une valeur status pour laquelle NT_SUCCESS(status) est false.

Remarques

Pour inscrire une fonction de rappel EvtDeviceD0Entry pour un appareil, un pilote doit appeler WdfDeviceInitSetPnpPowerEventCallbacks.

Si le pilote a inscrit une fonction de rappel EvtDeviceD0Entry pour un appareil, l’infrastructure appelle la fonction chaque fois que l’appareil entre dans son état de fonctionnement (D0). Un appareil passe à l’état D0 lorsque l’un des éléments suivants se produit :

  • Un appareil est énuméré (car l’appareil a été branché ou le système a été redémarré).
  • Le système et tous ses appareils retournent à leur état de fonctionnement à partir d’un état de faible consommation.
  • L’appareil revient à son état de fonctionnement après son entrée dans un état de faible consommation d’énergie, car il était inactif (si l’appareil prend en charge l’inactivité à faible consommation d’énergie).
  • Le gestionnaire de Plug-and-Play a redistribué les ressources matérielles du système entre les appareils du système.
Le framework appelle la fonction de rappel EvtDeviceD0Entry immédiatement après que l’appareil est entré dans son état de fonctionnement (D0) et est disponible pour le pilote, mais avant que les interruptions de l’appareil aient été activées. Le paramètre PreviousState identifie l’état d’alimentation de l’appareil dans lequel se trouvait l’appareil avant son entrée dans l’état D0. Lorsque l’infrastructure appelle EvtDeviceD0Entry pour la première fois, elle fournit une valeur PreviousState de WdfPowerDeviceD3Final.

La fonction de rappel doit effectuer toutes les opérations nécessaires pour rendre l’appareil entièrement opérationnel, telles que le chargement du microprogramme ou l’activation des fonctionnalités de l’appareil qui sont désactivées lorsque l’appareil est dans un état de faible consommation.

Si la fonction de rappel EvtDeviceD0Entry retourne une valeur status pour laquelle NT_SUCCESS(status) est false, l’infrastructure effectue les opérations suivantes :

  • Si l’appareil démarre pour la première fois, l’infrastructure commence une séquence de suppression ordonnée pour l’appareil.
  • Si l’appareil revient d’un état de faible consommation à son état de fonctionnement, l’infrastructure commence une séquence de suppression surprise pour l’appareil.
L’infrastructure n’appelle pas la fonction de rappel EvtDeviceD0Exit du pilote dans l’une ou l’autre de ces situations.

Pour plus d’informations sur le moment où l’infrastructure appelle la fonction de rappel EvtDeviceD0Entry , consultez Scénarios pnP et de gestion de l’alimentation.

Pour plus d’informations sur les pilotes qui fournissent cette fonction de rappel, consultez Prise en charge du PnP et de la gestion de l’alimentation dans les pilotes de fonction.

La fonction de rappel EvtDeviceD0Entry est appelée dans IRQL = PASSIVE_LEVEL. Vous ne devez pas rendre cette fonction de rappel paginable.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête wdfdevice.h (inclure Wdf.h)
IRQL PASSIVE_LEVEL (voir la section Remarques)

Voir aussi

EvtDeviceD0Exit