WdfDeviceInitRegisterPowerStateChangeCallback, fonction (wdfdevice.h)

[S’applique à KMDF uniquement]

Notes

Cette méthode est destinée à un usage interne Microsoft uniquement.

La méthode WdfDeviceInitRegisterPowerStateChangeCallback enregistre une fonction de rappel d’événement fournie par le pilote que l’infrastructure appelle lorsque la machine à état d’alimentation d’un appareil change d’état.

Syntaxe

NTSTATUS WdfDeviceInitRegisterPowerStateChangeCallback(
  [in] PWDFDEVICE_INIT                                DeviceInit,
  [in] WDF_DEVICE_POWER_STATE                         PowerState,
  [in] PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION EvtDevicePowerStateChange,
  [in] ULONG                                          CallbackTypes
);

Paramètres

[in] DeviceInit

Pointeur fourni par l’appelant vers une structure WDFDEVICE_INIT .

[in] PowerState

Énumérateur WDF_DEVICE_POWER_STATE qui identifie l’état de la machine d’alimentation pour lequel le pilote demande une notification.

[in] EvtDevicePowerStateChange

Pointeur fourni par l’appelant vers la fonction de rappel d’événement EvtDevicePowerStateChange du pilote.

[in] CallbackTypes

Combinaison ORed d’énumérateurs WDF_STATE_NOTIFICATION_TYPE typés.

Valeur retournée

Si l’opération réussit, WdfDeviceInitRegisterPowerStateChangeCallback retourne STATUS_SUCCESS. Les valeurs de retour supplémentaires sont les suivantes :

Code de retour Description
STATUS_INVALID_PARAMETER
Un paramètre non valide a été détecté.
STATUS_INSUFFICIENT_RESOURCES
La mémoire est insuffisante pour terminer l’opération.

Remarques

Si votre pilote appelle WdfDeviceInitRegisterPowerStateChangeCallback, il doit le faire avant d’appeler WdfDeviceCreate.

Pour plus d’informations sur l’appel de WdfDeviceCreate, consultez State Machines in the Framework.

Exemples

L’exemple de code suivant inscrit une fonction de rappel d’événement que l’infrastructure appelle lorsque la machine à état d’alimentation de l’appareil change d’état.

status = WdfDeviceInitRegisterPowerStateChangeCallback(
                                     DeviceInit,
                                     WdfDevStatePowerD0StartingConnectInterrupt,
                                     PciDrvPowerStateChangeCallback,
                                     StateNotificationAllStates
                                     );

Configuration requise

Condition requise Valeur
Plateforme cible Universal
Version KMDF minimale 1.0
En-tête wdfdevice.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (consultez Gestion des versions de la bibliothèque d’infrastructure).)
IRQL PASSIVE_LEVEL
Règles de conformité DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)