Partager via


PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK fonction de rappel (wdm.h)

Le DevicePowerNotRequiredCallback routine de rappel informe le pilote de périphérique que l’appareil n’est pas nécessaire pour rester dans l’état d’alimentation D0.

Syntaxe

PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK PoFxDevicePowerNotRequiredCallback;

void PoFxDevicePowerNotRequiredCallback(
  [in] PVOID Context
)
{...}

Paramètres

[in] Context

Pointeur vers le contexte de l’appareil. Le pilote de périphérique utilise ce contexte pour stocker des informations sur l’état actuel de l’alimentation de l’appareil. Le pilote de périphérique a spécifié ce pointeur dans le DeviceContext membre de la structure PO_FX_DEVICE utilisée par le pilote pour inscrire l’appareil auprès du framework de gestion de l’alimentation (PoFx). Ce contexte est opaque pour PoFx.

Valeur de retour

Aucun

Remarques

Lorsque PoFx appelle la routine DevicePowerNotRequiredCallback du pilote, le pilote doit d’abord décider s’il faut lancer une transition vers un état Dx à faible puissance (en envoyant une demande de IRP_MN_SET_POWER vers le bas de la pile d’appareils) ou de rester dans l’état D0. Ensuite, sans attendre la fin de la transition Dx, le pilote doit appeler le PoFxCompleteDevicePowerNotRequired routine pour avertir PoFx que le pilote a terminé sa réponse au rappel DevicePowerNotRequiredCallback. Le pilote peut appeler PoFxCompleteDevicePowerNotRequired avant ou après l'DevicePowerNotRequiredCallback routine retourne.

Lorsqu’un appareil est dans l’état D0 et que l’état Fx ou la condition active/inactive d’un composant dans l’appareil change, PoFx évalue si l’appareil peut entrer un état Dx à faible alimentation ou doit rester dans l’état D0. Si l’appareil peut entrer dans un état Dx à faible alimentation, PoFx appelle la routine DevicePowerNotRequiredCallback du pilote.

Si l’appareil entre dans un état Dx à faible puissance en réponse à un rappel DevicePowerNotRequiredCallback, mais PoFx détermine ultérieurement que l’appareil doit entrer dans l’état D0, PoFx appelle la routine DevicePowerRequiredCallback du pilote. En réponse à cet appel, l’appareil doit entrer l’état D0.

Exemples

Pour définir une routine de rappel DevicePowerNotRequiredCallback, vous devez d’abord fournir une déclaration de fonction qui identifie le type de routine de rappel que vous définissez. Windows fournit un ensemble de types de fonctions de rappel pour les pilotes. La déclaration d’une fonction à l’aide des types de fonctions de rappel permet d'Analyse du code pour les pilotes, static Driver Verifier (SDV) et d’autres outils de vérification recherchent des erreurs, et il est nécessaire d’écrire des pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une routine de rappel DevicePowerNotRequiredCallback nommée MyDevicePowerNotRequiredCallback, utilisez le type de PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK comme indiqué dans cet exemple de code :

PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK MyDevicePowerNotRequiredCallback;

Ensuite, implémentez votre routine de rappel comme suit :

_Use_decl_annotations_
VOID
  MyDevicePowerNotRequiredCallback(
    PVOID Context
    )
  {
      // Function body
  }

Le type de fonction PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK est défini dans le fichier d’en-tête Wdm.h. Pour identifier plus précisément les erreurs lorsque vous exécutez les outils d’analyse du code, veillez à ajouter l’annotation _Use_decl_annotations_ à votre définition de fonction. L’annotation _Use_decl_annotations_ garantit que les annotations appliquées au type de fonction PO_FX_DEVICE_POWER_NOT_REQUIRED_CALLBACK dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur les exigences relatives aux déclarations de fonction, consultez déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes WDM. Pour plus d’informations sur _Use_decl_annotations_, consultez annoter le comportement de la fonction.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge à partir de Windows 8.
plateforme cible Bureau
d’en-tête wdm.h (include Wudfwdm.h)
IRQL Appelé au <IRQL = DISPATCH_LEVEL.

Voir aussi

DevicePowerRequiredCallback

IRP_MN_SET_POWER

PO_FX_DEVICE

PoFxCompleteDevicePowerNotRequired

PoFxRegisterDevice