Состояния питания NFC
Драйвер расширения класса NFC выступает в качестве владельца политики питания для устройства, поэтому он вызывает WdfDeviceInitSetPowerPolicyOwnership(TRUE) во время процедуры инициализации устройства.
Драйвер NFC CX поддерживает состояния питания устройства D0 и D3. На схеме состояний ниже показан переход между двумя состояниями питания. Устройство в режиме простоя находится в состоянии питания D3, при котором nfcC не имеет питания. Если переключатель активен и все модули, такие как NFP (активные публикации или подписки из NFP DDI), SE (активные безопасные элементы в режиме эмуляции из NFCSE DDI) или SmartCard активны, состояние переходит на D0. Во время этого перехода состояние опроса устройства обновляется в соответствии с требованиями всех активных модулей.
Кроме того, встроенная логика обнаружения простоя UMDF используется для управления устройством. Во время инициализации WdfDevice назначается его параметры простоя S0 следующим образом:
WdfDeviceAssignS0IdleSettings(
IdleCannotWakeFromS0,
PowerDeviceD3,
IdleTimeout,
IdleAllowUserControl,
WdfUseDefault
);
Значение IdleTimeout по умолчанию — 1 секунда. Этот параметр можно настроить с помощью параметра PowerIdleTimeout в NFC_CX_CLIENT_CONFIG. На приведенной ниже схеме состояния показаны различные переходы питания, которые подразумеваются при использовании метода обнаружения простоя WDF.
Драйвер клиента может быть владельцем политики управления питанием с помощью элемента IsPowerPolicyOwnerструктуры NFC_CX_CLIENT_CONFIG . Это может быть полезно для транспортов, таких как USB, где необходимо настроить дополнительные состояния питания устройства.