Partilhar via


DeviceWake

O membro DeviceWake do DEVICE_CAPABILITIES contém o estado de energia mais baixo (menos alimentado) do dispositivo a partir do qual o dispositivo pode sinalizar um evento de despertar, ou PowerDeviceUnspecified se o dispositivo não puder despertar em resposta a um sinal externo.

O controlador do bus define este valor. Um driver de nível mais alto pode alterar o valor para um estado de maior potência. Por exemplo, se o driver de barramento definir DeviceWake como D3, mas um driver mais acima na pilha de dispositivos suportar a ativação somente de D2, o driver de nível mais alto poderá alterar o valor para D2.

Observe que, se um driver alterar DeviceWake, ele também poderá ter que alterar SystemWake para evitar conflitos com os mapeamentos sistema-para-dispositivo na matriz DeviceState . Por exemplo, suponha que o motorista de autocarro configura o seguinte:

  • DeviceState[PowerSystemSleeping1] = PowerDeviceD1

  • DeviceState[PowerSystemSleeping2] = PowerDeviceD3

  • DeviceWake = PowerDeviceD3

  • SystemWake = PowerSystemSleeping2

Se um driver de nível superior determinar que seu dispositivo não pode despertar o sistema de D3, mas apenas de D2 ou superior, ele pode alterar DeviceWake para D2. No entanto, essa alteração faz com que o mapeamento de S2 para D3 seja impossível. Lembre-se de que a matriz DeviceState lista o estado de energia mais alto que um dispositivo pode suportar para um determinado estado de energia do sistema. Se o estado de energia do sistema no exemplo for PowerSystemSleeping2, o estado de energia do dispositivo não poderá ser PowerDeviceD2. Para eliminar esse problema, o driver também deve alterar SystemWake para PowerSystemSleeping1. O mesmo é verdade para as configurações WakeFromDx e DeviceDx . Um driver deve garantir que quaisquer alterações feitas em SystemWake ou DeviceWake não entrem em conflito com os valores WakeFromDx e DeviceDx . Os valores de WakeFromDx e DeviceDx refletem características de hardware que um driver não pode alterar.

Se ambos os membros SystemWake e DeviceWake forem diferentes de zero (ou seja, não PowerSystemUnspecified), o dispositivo e seus drivers suportam ativação neste sistema.

Em hardware não-ACPI, o membro DeviceWake contém zero (PowerSystemUnspecified).