Freigeben über


DeviceWake

Das DeviceWake-Element von DEVICE_CAPABILITIES enthält den niedrigsten (leistungsschwachen) Gerätestromzustand, von dem das Gerät ein Aktivierungsereignis signalisieren kann, oder PowerDeviceUnspecified , wenn das Gerät als Reaktion auf ein externes Signal nicht reaktiviert werden kann.

Der Bustreiber legt diesen Wert fest. Ein Treiber auf höherer Ebene kann den Wert in einen Zustand mit höherer Leistung ändern. Wenn der Bustreiber z. B . DeviceWake auf D3 festlegt, aber ein Treiber, der weiter oben im Gerätestapel liegt, die Aktivierung nur von D2 unterstützt, kann der Treiber auf höherer Ebene den Wert in D2 ändern.

Wenn ein Treiber DeviceWake ändert, muss er möglicherweise auch SystemWake ändern, um Konflikte mit den System-zu-Gerät-Zuordnungen im DeviceState-Array zu vermeiden. Angenommen, der Bustreiber legt Folgendes fest:

  • DeviceState[PowerSystemSleeping1] = PowerDeviceD1

  • DeviceState[PowerSystemSleeping2] = PowerDeviceD3

  • DeviceWake = PowerDeviceD3

  • SystemWake = PowerSystemSleeping2

Wenn ein Treiber auf höherer Ebene feststellt, dass sein Gerät das System nicht von D3, sondern nur von D2 oder höher reaktivieren kann, kann er DeviceWake in D2 ändern. Diese Änderung führt jedoch dazu, dass die Zuordnung von S2 zu D3 unmöglich ist. Denken Sie daran, dass das DeviceState-Array den höchsten Geräteleistungszustand auflistet, den ein Gerät für einen bestimmten Systemleistungszustand unterstützen kann. Wenn der Systemstromzustand im Beispiel PowerSystemSleeping2 lautet, kann der Energiezustand des Geräts nicht PowerDeviceD2 sein. Um dieses Problem zu beheben, muss der Treiber auch SystemWake in PowerSystemSleeping1 ändern. Gleiches gilt für die Einstellungen WakeFromDx und DeviceDx . Ein Treiber muss sicherstellen, dass änderungen an SystemWake oder DeviceWake nicht mit den WakeFromDx - und DeviceDx-Werten in Konflikt geraten. Die Werte von WakeFromDx und DeviceDx spiegeln Hardwaremerkmale wider, die ein Treiber nicht ändern kann.

Wenn sowohl die Member SystemWake als auch DeviceWake ungleich null (d. h. nicht PowerSystemUnspecified) sind, unterstützen das Gerät und seine Treiber die Aktivierung auf diesem System.

Auf Nicht-ACPI-Hardware enthält das DeviceWake-Element null (PowerSystemUnspecified).