Suporte a dispositivos Multiple-Component com estados de energia funcionais únicos ou múltiplos

[Aplica-se somente ao KMDF]

Um driver KMDF para um dispositivo de vários componentes pode definir um ou mais estados de energia funcionais para cada componente.

Nesse caso, o driver registra-se diretamente na PoFx (estrutura de gerenciamento de energia). Para especificar que o WDF não deve se registrar com PoFx, o driver chama WdfDeviceAssignS0IdleSettings com o membro IdleTimeoutType da estrutura WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS definida como DriverManagedIdleTimeout. Normalmente, o driver chama esse método de sua função de retorno de chamada EvtDriverDeviceAdd .

Em seguida, o driver deve se registrar no PoFx. Para fazer isso, o driver chama PoFxRegisterDevice e PoFxStartDevicePowerManagement. O driver deve se registrar no PoFx apenas uma vez, quando o dispositivo for iniciado pela primeira vez. Uma maneira de fazer isso é chamando essas rotinas de uma função EvtDeviceSelfManagedIoInit fornecida pelo driver. EvtDeviceSelfManagedIoInit é chamado apenas na primeira vez que o dispositivo é iniciado.

Quando o dispositivo é removido, o driver deve chamar PoFxUnregisterDevice para cancelar o registro do dispositivo da PoFx. Para cancelar o registro apenas uma vez, recomendamos que o driver chame essa rotina de uma função EvtDeviceSelfManagedIoFlush fornecida pelo driver. EvtDeviceSelfManagedIoFlush é chamado somente quando o dispositivo está sendo removido. Ao cancelar o registro em EvtDeviceSelfManagedIoFlush, o driver retém o registro de energia durante as transições de suspensão e rebalanceamento e não precisa manter referências de energia para solicitações de E/S que permanecem pendentes durante essas transições.

Quando o driver chama PoFxRegisterDevice, ele recebe um POHANDLE (identificador de registro de energia) que pode ser usado para interagir diretamente com PoFx, conforme descrito nos seguintes tópicos:

Além disso, o driver pode chamar rotinas do Power Framework diretamente para enviar solicitações de controle de energia e especificar requisitos de latência, residência e ativação.

Para obter mais informações sobre PoFx, consulte Visão geral da Estrutura de Gerenciamento de Energia.