Partager via


WdfPdoInitRemovePowerDependencyOnParent, fonction (wdfpdo.h)

La méthode WdfPdoInitRemovePowerDependencyOnParent supprime la dépendance d’alimentation décrite dans la section Notes .

Syntaxe

void WdfPdoInitRemovePowerDependencyOnParent(
  PWDFDEVICE_INIT DeviceInit
);

Paramètres

DeviceInit

Pointeur vers une structure WDFDEVICE_INIT .

Valeur de retour

None

Remarques

En général, l’infrastructure exige qu’un pilote de bus parent entre dans l’état d’alimentation du périphérique D0 avant qu’un appareil enfant entre dans D0, et de la même façon qu’un appareil enfant quitte D0 avant que le parent quitte D0.

Toutefois, ce comportement peut ne pas être souhaité, en particulier si l’appareil enfant est un appareil virtuel qui ne représente aucun matériel réel. À l’arrêt S0, l’état d’alimentation de l’appareil enfant peut ne pas être pertinent pour le parent. En fait, l’appareil enfant n’a peut-être aucune raison d’effectuer la détection d’inactivité S0. Dans ce cas, il serait préférable que l’appareil parent passe de D0 à Dx en fonction de l’activité d’E/S, plutôt que de dépendre de l’état d’alimentation de l’appareil enfant.

La suppression de la dépendance d’alimentation a les effets suivants sur le pilote de bus :

  • Les rappels PnP/Alimentation PDO peuvent s’exécuter lorsque l’appareil parent est dans Dx.
  • Les rappels PDO enable/disable-wake-at-bus peuvent s’exécuter pendant que l’appareil parent est dans Dx.
  • Une requête transférée d’une file d’attente gérée par l’alimentation sur le PDO (en supposant que l’AOP est le propriétaire de la stratégie d’alimentation) vers une file d’attente non gérée par l’alimentation sur le FDO peut être distribuée pendant que le pilote de bus est dans Dx.
  • La pile enfant effectue des transitions d’état d’alimentation indépendamment de la pile parente. Cela inclut des scénarios tels que la reprise rapide dans laquelle la pile enfant peut recevoir son S-IRP et même terminer le traitement de son D-IRP avant que la pile parente termine le traitement de sa propre D-IRP.

Pour supprimer la dépendance d’alimentation, le pilote de bus peut appeler WdfPdoInitRemovePowerDependencyOnParent lorsqu’il crée l’AOP pour l’appareil enfant.

Cette fonction n’effectue aucune action si le pilote de bus parent n’est pas le propriétaire de la stratégie d’alimentation de la pile de périphériques parent.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10, version 2004
Version KMDF minimale 1.29
En-tête wdfpdo.h (inclure Wdf.h)
Bibliothèque Wdf01000.sys (KMDF)
IRQL PASSIVE_LEVEL