Afficher en anglais

Partage via


fonction de rappel PO_FX_DIRECTED_POWER_DOWN_CALLBACK (wdm.h)

La fonction de rappel PO_FX_DIRECTED_POWER_DOWN_CALLBACK est implémentée par le pilote client pour gérer les activités de mise hors tension spécifiques au pilote pour le compte de DFx (Dirigé PoFx).

Syntaxe

C++
PO_FX_DIRECTED_POWER_DOWN_CALLBACK PoFxDirectedPowerDownCallback;

void PoFxDirectedPowerDownCallback(
  PVOID Context,
  ULONG Flags
)
{...}

Paramètres

Context

Fournit un pointeur vers le contexte passé à PoFxRegisterDevice.

Flags

Réservé pour une utilisation ultérieure.

Valeur de retour

Aucun

Remarques

Les pilotes WDM qui s’inscrivent auprès de PoFx pour la prise en charge de la gestion de l’alimentation inactive du runtime doivent implémenter ce rappel pour ajouter la prise en charge de DFx.

Inscrivez votre implémentation de cette fonction de rappel en définissant le membre approprié de la structure PO_FX_DEVICE_V3, puis en appelant PoFxRegisterDevice.

Ce rappel est appelé pendant une session de secours moderne lorsque cet appareil ou un dépendant de cet appareil a bloqué l’entrée DRIPS pendant au moins deux minutes consécutives (délai d’expiration configurable par le pilote, par défaut 2 minutes) sans aucune activité logicielle répartie par activateur en cours d’exécution.

Lorsque ce rappel est appelé, le pilote effectue généralement les tâches générales suivantes :

  • Arrêtez le traitement du nouveau travail.

  • Passez immédiatement à l’état de faible puissance.

  • Restez à faible alimentation jusqu’à ce que le système appelle le PO_FX_DIRECTED_POWER_UP_CALLBACKdu pilote.

Les étapes et l’ordre d’implémentation peuvent varier, mais peuvent inclure certaines des options suivantes :

  • Demandez un IRP Dx.

  • Une fois le Dx IRP arrivé, bloquez les files d’attente d’E/S.

  • Attendez que les opérations en cours se terminent.

  • Si ces opérations prennent trop de temps, annulez-les éventuellement.

  • Effectuez des actions nécessaires pour transférer l’appareil en Dx (par exemple enregistrer l’état matériel).

  • Bras pour le réveil si nécessaire.

  • Appelez PoFxCompleteDirectedPowerDown.

  • Restez dans Dx jusqu’à ce que le système appelle PO_FX_DIRECTED_POWER_UP_CALLBACK.

Le contrat est très similaire à S3/S4, même si aucun S-IRP n’est impliqué.

Si une hiérarchie d’appareils est impliquée, l’infrastructure d’alimentation dirigée demande aux appareils enfants de se mettre hors tension avant l’appareil parent. Pour un appareil parent donné, les enfants directs (ceux énumérés par le parent) et les enfants indirects en raison de relations de pouvoir sont pris en compte.

Exigences

Exigence Valeur
client minimum pris en charge Windows 10, version 1903
d’en-tête wdm.h (include Wdm.h)

Voir aussi

Présentation de l’infrastructure de gestion de l’alimentation dirigée

PO_FX_DIRECTED_POWER_UP_CALLBACK