DeviceWake

DEVICE_CAPABILITIESDeviceWake 멤버에는 디바이스가 절전 모드 해제 이벤트에 신호를 보낼 수 있는 가장 낮은(최소 전원) 디바이스 전원 상태 또는 디바이스가 외부 신호에 대한 응답으로 절전 모드를 해제할 수 없는 경우 PowerDeviceUnspecified가 포함됩니다.

버스 드라이버는 이 값을 설정합니다. 상위 수준 드라이버는 값을 더 높은 전원 상태로 변경할 수 있습니다. 예를 들어 버스 드라이버가 DeviceWake 를 D3으로 설정하지만 디바이스 스택에서 더 높은 드라이버가 D2의 절전 모드 해제만 지원하는 경우 상위 수준 드라이버는 값을 D2로 변경할 수 있습니다.

드라이버가 DeviceWake를 변경하는 경우 DeviceState 배열의 시스템-디바이스 매핑과의 충돌을 방지하기 위해 SystemWake를 변경해야 할 수도 있습니다. 예를 들어 버스 드라이버가 다음을 설정한다고 가정합니다.

  • DeviceState[PowerSystemSleeping1] = PowerDeviceD1

  • DeviceState[PowerSystemSleeping2] = PowerDeviceD3

  • DeviceWake = PowerDeviceD3

  • SystemWake = PowerSystemSleeping2

상위 수준 드라이버가 디바이스가 D3에서 시스템을 절전 모드에서 해제할 수 없지만 D2 이상에서만 절전 모드를 해제할 수 없는 경우 DeviceWake 를 D2로 변경할 수 있습니다. 그러나 이 변경으로 인해 S2에서 D3으로의 매핑이 불가능합니다. DeviceState 배열은 디바이스가 지정된 시스템 전원 상태에 대해 지원할 수 있는 가장 높은 디바이스 전원 상태를 나열합니다. 예제의 시스템 전원 상태가 PowerSystemSleeping2이면 디바이스 전원 상태는 PowerDeviceD2일 수 없습니다. 이 문제를 제거하려면 드라이버도 SystemWakePowerSystemSleeping1로 변경해야 합니다. WakeFromDxDeviceD x 설정도 마찬가지입니다. 드라이버는 SystemWake 또는 DeviceWake에 대한 변경 내용이 WakeFromDxDeviceDx 값과 충돌하지 않도록 해야 합니다. WakeFromDxDeviceDx의 값은 드라이버가 변경할 수 없는 하드웨어 특성을 반영합니다.

SystemWakeDeviceWake 멤버가 모두 0이 아닌 경우(PowerSystemUnspecified가 아님) 디바이스와 해당 드라이버는 이 시스템에서 절전 모드 해제를 지원합니다.

비 ACPI 하드웨어에서 DeviceWake 멤버에는 0(PowerSystemUnspecified)이 포함됩니다.