Estados de energia NFC
O driver de extensão de classe NFC serve como o proprietário da política de energia para o dispositivo, portanto, ele chama WdfDeviceInitSetPowerPolicyOwnership(TRUE) durante sua rotina de inicialização do dispositivo.
O driver NFC CX dá suporte aos estados de energia do dispositivo D0 e D3. O diagrama de estado abaixo mostra a transição entre os dois estados de energia. O dispositivo em ocioso está no estado de energia D3 em que o NFCC não tem energia. Quando o modo de rádio está ativo e todos os módulos, como NFP (publicações ativas ou assinaturas do NFP DDI), SE (elementos seguros ativos no modo de emulação do NFCSE DDI) ou SmartCard estão ativos, o estado faz a transição para D0. Durante essa transição, o estado de sondagem do dispositivo é atualizado para atender ao requisito de todos os módulos ativos.
Além disso, a lógica de detecção ociosa interna do UMDF é usada para o power manager do dispositivo. Durante a inicialização, o WdfDevice recebe suas configurações de Ociosidade S0 da seguinte maneira:
WdfDeviceAssignS0IdleSettings(
IdleCannotWakeFromS0,
PowerDeviceD3,
IdleTimeout,
IdleAllowUserControl,
WdfUseDefault
);
O IdleTimeout usa como padrão 1 segundo. Essa configuração é configurável por meio do parâmetro PowerIdleTimeout em NFC_CX_CLIENT_CONFIG. O diagrama de estado abaixo ilustra as várias transições de energia implícitas pelo uso do método de detecção ociosa do WDF.
O driver do cliente pode optar por ser o proprietário da política de energia da pilha por meio do membro IsPowerPolicyOwner da estrutura NFC_CX_CLIENT_CONFIG . Isso pode ser útil para transportes como USB em que estados adicionais de energia do dispositivo devem ser configurados.