PO_FX_DIRECTED_POWER_DOWN_CALLBACK fonction de rappel (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 (Directed PoFx).

Syntaxe

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 un usage futur.

Valeur de retour

None

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é au cours d’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’attente configurable pour le pilote, 2 minutes par défaut) sans qu’aucune activité logicielle de répartiteur d’activateur ne s’exécute.

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 à l’état de faible consommation d’énergie jusqu’à ce que le système appelle le PO_FX_DIRECTED_POWER_UP_CALLBACK du pilote.

Les étapes d’implémentation et l’ordre peuvent varier, mais peuvent inclure certains des éléments suivants :

  • Demandez un IRP Dx.

  • Une fois l’IRP Dx 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 les actions nécessaires pour faire passer l’appareil à 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, bien qu’il n’y ait pas de S-IRP.

Si une hiérarchie d’appareils est impliquée, l’infrastructure d’alimentation dirigée demande aux appareils enfants de s’éteindre 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 puissance sont pris en compte.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10 version 1903
En-tête wdm.h (inclure Wdm.h)

Voir aussi

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

PO_FX_DIRECTED_POWER_UP_CALLBACK