Partager via


PO_FX_DEVICE_POWER_REQUIRED_CALLBACK fonction de rappel (wdm.h)

La routine de rappel DevicePowerRequiredCallback avertit le pilote de périphérique que l’appareil doit entrer et rester dans l’état d’alimentation D0.

Syntaxe

PO_FX_DEVICE_POWER_REQUIRED_CALLBACK PoFxDevicePowerRequiredCallback;

void PoFxDevicePowerRequiredCallback(
  [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 d’alimentation actuel de l’appareil. Le pilote de périphérique a spécifié ce pointeur dans le membre DeviceContext de la structure PO_FX_DEVICE utilisée par le pilote pour inscrire l’appareil auprès de l’infrastructure de gestion de l’alimentation (PoFx). Ce contexte est opaque à PoFx.

Valeur de retour

None

Remarques

Une fois que PoFx a appelé la routine DevicePowerRequiredCallback du pilote, le pilote doit lancer une transition vers l’état D0 en envoyant une IRP D0 (une demande de IRP_MN_SET_POWER ) vers le bas de la pile de l’appareil, si l’appareil n’est pas déjà dans l’état D0. Une fois que le pilote a terminé (et tous les pilotes inférieurs terminés) la gestion de cette requête, le pilote doit appeler la routine PoFxReportDevicePoweredOn . L’appel PoFxReportDevicePoweredOn informe PoFx que l’appareil a terminé sa réponse à l’appel DevicePowerRequiredCallback . Le pilote peut appeler PoFxReportDevicePoweredOn pendant ou après l’appel DevicePowerRequiredCallback .

Chaque fois que la routine DevicePowerRequiredCallback est appelée, le pilote doit répondre en appelant PoFxReportDevicePoweredOn. L’appel PoFxReportDevicePoweredOn peut se produire pendant ou après l’appel DevicePowerRequiredCallback . Le pilote doit appeler PoFxReportDevicePoweredOn qu’aucun IRP D0 n’est requis, que la requête IRP D0 échoue ou que l’IRP D0 distribué réussisse ou échoue.

PoFx appelle la routine DevicePowerRequiredCallback uniquement si PoFx a précédemment appelé la routine DevicePowerNotRequiredCallback du pilote pour informer le pilote que l’appareil n’était pas obligé de rester dans l’état D0.

L’appel à la routine DevicePowerRequiredCallback peut se produire à tout moment après que le pilote a appelé PoFxCompleteDevicePowerNotRequired pour effectuer un rappel DevicePowerNotRequiredCallback . L’appel DevicePowerRequiredCallback ne se produit pas nécessairement à la suite d’une action effectuée par le pilote, telle qu’une demande de modification d’un composant à la condition active.

Exemples

Pour définir une routine de rappel DevicePowerRequiredCallback , 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 fonction de rappel permet à l’analyse du code pour les pilotes, au vérificateur de pilotes statiques (SDV) et à d’autres outils de vérification de trouver des erreurs. Il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une routine de rappel DevicePowerRequiredCallback nommée MyDevicePowerRequiredCallback, utilisez le type PO_FX_DEVICE_POWER_REQUIRED_CALLBACK comme indiqué dans cet exemple de code :

PO_FX_DEVICE_POWER_REQUIRED_CALLBACK MyDevicePowerRequiredCallback;

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

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

Le type de fonction PO_FX_DEVICE_POWER_REQUIRED_CALLBACK est défini dans le fichier d’en-tête Wdm.h. Pour identifier plus précisément les erreurs lors de l’exécution des 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_REQUIRED_CALLBACK dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les 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 Annotating Function Behavior.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge à partir de Windows 8.
Plateforme cible Desktop (Expérience utilisateur)
En-tête wdm.h (inclure Wudfwdm.h)
IRQL Appelé à IRQL <= DISPATCH_LEVEL.

Voir aussi

DevicePowerNotRequiredCallback

PO_FX_DEVICE

PoFxCompleteDevicePowerNotRequired

PoFxRegisterDevice

PoFxReportDevicePoweredOn