États d’alimentation NFC
Le pilote d’extension de classe NFC sert de propriétaire de la stratégie d’alimentation pour l’appareil. Il appelle donc WdfDeviceInitSetPowerPolicyOwnership(TRUE) pendant sa routine d’initialisation de l’appareil.
Le pilote NFC CX prend en charge les états d’alimentation des appareils D0 et D3. Le diagramme d’état ci-dessous montre la transition entre les deux états d’alimentation. L’appareil inactif est dans l’état d’alimentation D3 où le NFCC n’est pas alimenté. Lorsque le mode radio est actif et que des modules tels que NFP (publications ou abonnements actifs à partir de NFP DDI), SE (éléments sécurisés actifs en mode émulation à partir de NFCSE DDI) ou SmartCard sont actifs, l’état passe à D0. Pendant cette transition, l’état d’interrogation de l’appareil est mis à jour pour répondre aux exigences de tous les modules actifs.
En outre, la logique de détection d’inactivité intégrée d’UMDF est utilisée pour alimenter l’appareil. Pendant l’initialisation, WdfDevice se voit attribuer ses paramètres D’inactivité S0 comme suit :
WdfDeviceAssignS0IdleSettings(
IdleCannotWakeFromS0,
PowerDeviceD3,
IdleTimeout,
IdleAllowUserControl,
WdfUseDefault
);
La valeur par défaut d’IdleTimeout est de 1 seconde. Ce paramètre est configurable via le paramètre PowerIdleTimeout dans NFC_CX_CLIENT_CONFIG. Le diagramme d’état ci-dessous illustre les différentes transitions d’alimentation qui sont impliquées par l’utilisation de la méthode de détection d’inactivité WDF.
Le pilote client peut choisir d’être le propriétaire de la stratégie d’alimentation de la pile via le membre IsPowerPolicyOwner de la structure NFC_CX_CLIENT_CONFIG . Cela peut être utile pour les transports tels que l’USB, où des états d’alimentation supplémentaires de l’appareil doivent être configurés.