Implementierungshandbuch für Wake-On-Touch

Einführung

Wake-on-Touch ist eine neue, optionale Funktion, die zu Windows 11 Geräten kommt. Mit dieser Funktion können Benutzer den Bildschirm eines Geräts mit dem Finger berühren, um es aus dem Ruhezustand zu wecken. Die Verwendung eines Stifts zum Aufwecken des Bildschirms wird nicht unterstützt. Wake-on-Touch ist nur auf Geräten verfügbar, die sich explizit pro Anleitung unten anmelden.

Wenn sich ein Gerät für Wake-on-Touch entschieden hat, kann der OEM den Standardzustand angeben (aktiviert/deaktiviert – zusätzliche Informationen finden Sie im Abschnitt OEM-Überlegungen weiter unten). Benutzer haben auch eine Option „Zum Aufwecken den Bildschirm berühren“, um sie je nach Präferenz auf der Seite „Neue Bluetooth& -Geräte – > Touch -Einstellungen“ ein- oder auszuschalten (siehe Abbildung unten).

Wake on Touch-Einstellungsseite

Hinweis

Wenn diese Funktion auf einem Gerät nicht unterstützt wird, wird die Einstellung nicht auf dieser Seite angezeigt.

Dieses Dokument beschreibt, wie HID-basierte Touch-Geräte, die mit Windows kompatibel sind, Wake-On-Touch unterstützen können und was OEMs/ODMs und Touch-IHVs tun müssen je nachdem, ob sie einen für USB, I2C oder SPI verfügbaren Inbox-HID-Miniport-Treiber oder einen 3P-HID-Miniport speziell für einen Bus verwenden, dem ein Inbox-Treiber fehlt (z.B. Intel THC SPI).

OEM-Überlegungen

Es ist zwingend erforderlich, dass OEMs überlegen, ob Wake-on-Touch für jedes Design und jede SKU implementiert werden soll, da es merkliche Kompromisse beim Stromverbrauch für die Funktion gibt. Das Drücken einer Taste auf der Tastatur, die Interaktion mit dem Touchpad oder das Klicken auf die Bluetooth-Taste auf einem gekoppelten Stift sind alles Methoden, um das Gerät mit geringerem Stromverbrauch zu aktivieren.

Aktivierungsgeste

Bei der Aktivierung von Wake-on-Touch können OEMs die Aktivierungsgeste so festlegen, dass sie entweder ein einfaches Tippen oder ein doppeltes Tippen ist, das mit ihrem Touch-IHV funktioniert. Unabhängig davon, welche Geste gewählt wird, muss sie überall auf dem aktiven Bereich des Displays verwendet werden können, um das Gerät aufzuwecken. Sobald der Touch-Controller eine Weckfunktion basierend auf der Einfach- oder Doppeltipp-Geste erkannt hat:

  1. Der Touch-Controller muss 2 Frames senden, die einen einzelnen Finger nach unten und oben darstellen (X, Y, TIP SET, gefolgt von X, Y, TIP CLEAR), unabhängig davon, welche Geste verwendet wurde, um die Aktivierung auszulösen
  2. Der Host verwendet diese 2 Frames nur als Hinweis auf die Anwesenheit des Benutzers, um Anzeigen usw. einzuschalten, und liefert diese Eingabe nicht an die Shell oder Anwendungen
  3. Die Up- und Down-Frames können beide sofort gesendet werden, wenn jedoch Scantime-Nutzung vorhanden ist, sollte sie zwischen Frames inkrementiert werden

Hinweis

Wenn der Touch-Controller eine Aktivierungsgeste erkannt hat und einen Interrupt aktiviert, um dem Host anzuzeigen, dass Eingabeberichte bereit sind, aber der Host den Lesevorgang tatsächlich nicht ausgibt, sollte der Touch-Controller nach einer vom Hersteller definierten Zeitüberschreitung wieder in den Energiesparzustand zurückkehren. Dies wird als anormaler Fall angesehen, kann aber für Touch-IHV wünschenswert sein, um dies zu berücksichtigen, um unnötigen Stromverbrauch im Standby-Modus zu minimieren.

Gerätehaltung

Unterschiedliche Haltungen, Gerätetypen und Energiezustände sollten alle berücksichtigt werden, um die Akkulaufzeit maximal zu optimieren und ein zuverlässiges UX zu gewährleisten, wenn die Funktion genutzt werden soll. Beispielsweise möchte ein konvertierbares Gerät Wake-on-Touch möglicherweise nur aktivieren, wenn es sich in seinem „Tablet“-Zustand befindet, und es deaktivieren, wenn es sich in seinem „Laptop“-Zustand befindet, um Batterie zu sparen.

Die Verfügbarkeit von Wake-on-Touch, sei es, wenn sich das Gerät im Standby-Modus befindet oder nur in bestimmten Körperhaltungen, erfordert unterschiedliche Ansätze in der Implementierung.

Bei Systemen mit einem Deckel (z. B. einem Gerät mit Laptop-Formfaktor) deaktiviert der HID-Stack Wake-on-Touch automatisch, wenn der Deckel geschlossen wird. Wenn Ihr Gerät diesem Formfaktor entspricht oder Wake-on-Touch unabhängig von der Gerätehaltung aktiviert werden soll, überspringen Sie den Rest des Inhalts in diesem Abschnitt und befolgen Sie die Anweisungen im Rest dieses Dokuments.

Wenn Wake-on-Touch nur in bestimmten Haltungen aktiviert werden soll, empfiehlt es sich, einen Filtertreiber zu implementieren, der steuert, ob der Touch-Controller basierend auf der Gerätehaltung für Wake-on-Touch aktiviert wird. Bei dieser Art der Implementierung würde der Filtertreiber entscheiden, ob der IRP-Fluss zu ACPI gelassen werden soll, um das Gerät auf D2 (aufwecken) zu setzen, oder ob das Gerät auf D3 Cold (aus) gesetzt werden soll.

Wenn es das Gerätedesign nicht zulässt, dass ACPI Strom (D3 Cold) vom Touch-Controller zieht, wenn Wake-on-Touch aufgrund der Haltung nicht erwünscht ist, sollte ein herstellerspezifischer Mechanismus implementiert werden, damit der Touch-Controller mit Strom versorgt wird (D3 Hot), während es informiert wird, dass es in den niedrigsten Energiezustand gehen soll, intern gatet und nicht nach Berührungen sucht. Mit diesem anbieterspezifischen Mechanismus kann der Touchcontroller eindeutig unterscheiden, ob Benutzereingaben oder nicht im SLEEP/Armed for Wake-Zustand pro Abbildung unten gescannt werden sollen.

Wake-on-Touch-Energieübergänge

Hinweis

Dieses Diagramm ist für HIDI2C. Weitere Informationen zu Stromübergängen, einschließlich für HIDUSB und HIDSPI, finden Sie unter Touchscreen Power Management.

Wenn ein Gerät je nach Haltung unterschiedliche Wake-on-Touch-Verhaltensweisen haben soll, wird schließlich empfohlen, das Gerät zu wecken, wenn eine Haltungsänderung auftritt. Haltungsänderungen sind ein klarer Hinweis auf Benutzereingaben, und dies stellt auch das ordnungsgemäße Scharf-/Unscharfschalten des Touch-Controllers sicher, wenn das Gerät eine neue Haltung einnimmt.

Standardstatus für Wake-On-Touch-Benutzereinstellung

Die Standardeinstellung für die Wake-On-Touch-Einstellung ist für fähige Systeme EIN, aber ein OEM kann einen Registrierungswert hinzufügen, der angibt, dass die Standardeinstellung stattdessen AUS sein sollte. Die Änderung sollte auf den Standardbenutzer angewendet werden und wird von jedem neuen Benutzer auf dem Gerät übernommen. Sobald der Benutzer die Einstellung ändert, hat seine Präferenz immer Vorrang, unabhängig davon, was die anfängliche OEM-Standardeinstellung war.

Erstellen Sie dazu den folgenden Registrierungsschlüssel und speichern Sie ihn im Standardbenutzer NTUSER.DAT:

Registrierungsspeicherort: \HKEY_CURRENT_USER\Software\Microsoft\Input\WakeableInputTypes

Registrierungsschlüssel:

Name Typ Wert
Toucheingabe REG_DWORD 0 = Deaktiviert 1 = Aktiviert

Anforderungen für das Aktivieren von Wake-on-Touch

Allgemeine Anforderungen

Es wird im Allgemeinen empfohlen, dass das Gerät Unterstützung für das Aufwecken aus dem D2-Zustand anzeigt, damit das Betriebssystem (OS), wenn es das Gerät für das Aufwecken bei Berührung aktivieren muss, es in D2 platzieren kann. Wenn das Betriebssystem das Gerät nicht für Wake-on-Touch aktivieren muss, platziert es das Gerät in D3. Dadurch kann das Gerät dann für größere Energieeinsparungen in D3Cold übergehen. Dies kann durch Befolgen der _S0W-bezogenen Anleitung im nachstehenden ACPI-Abschnitt erfolgen. Vom Gerät initiierte Energieoptimierungen (die nicht vom Host oder Betriebssystem initiiert werden) sollten auf eine für das Betriebssystem transparente Weise durchgeführt werden.

Bitte beachten Sie, dass, wenn das Betriebssystem (oder der Host) das Gerät in einen Zustand versetzt, der „Wake-On-Touch“ ermöglicht, wie in dieser Dokumentation beschrieben, es Sache des Touch-Controllers ist, sich selbst so zu konfigurieren, dass er bei einer entsprechenden Berührungsgeste aktiviert wird, basierend auf den OEM-Anforderungen und/oder dem Formfaktor des Geräts. Beispielsweise muss ein Gerät mit einem Touchscreen, das nicht durch einen Deckel verdeckt ist, möglicherweise sicherstellen, dass es keine unerwünschten Wakes verursacht.

Wenn ein HID-Touchgerät über andere HID-Sammlungen der obersten Ebene verfügt, z. B. vom Hersteller definierte Sammlungen, für die OEM-Software Dateihandles öffnen kann, um Geräte-E/A auszuführen, kann das Schließen der Dateihandles erfolgen, sobald die OEM-Software diese Geräte-E/A abgeschlossen hat, den Stromverbrauch des HID-Geräts reduzieren. Bitte beachten Sie, dass Windows 11 22H2 aktualisiert wurde, um den Energiezustand eines Wake-on-Touch-Geräts effizienter zu verwalten, indem es ausgeschaltet wird, ohne die Aktivierung aus dem modernen Standbymodus zuzulassen, solange Wake-on-Touch nicht erforderlich ist, z. B. wenn die Einstellung "Touch the screen to wake" auf Aus festgelegt ist oder wenn der Laptopdeckel geschlossen ist. Bei einer solchen OEM-Software besteht der Nebeneffekt darin, dass Eingaben aus solchen HID-Sammlungen der obersten Ebene während des modernen Standbymodus ebenfalls unterdrückt werden.

ACPI-Firmwareanforderungen

Wenn das Touch-Controller-Gerät in ACPI definiert ist, muss es Folgendes implementieren, um seine Wake-Fähigkeiten und -Ressourcen zu melden.

  1. _S0W-Methode, die den niedrigsten Energiezustand des Geräts zurückgibt, unter dem das Gerät das Aufwachen signalisieren kann.
  2. _CRS-Methode, die die aktivierungsfähige Unterbrechung definiert.
  3. _PRx-Methoden, die die Energieressourcen definieren, die jedem unterstützten D-Zustand zugeordnet sind.

Weitere Informationen finden Sie in der Dokumentation Wake-fähige Interrupts (_CRS).

Treiberanforderungen zum Aktivieren von Wake-on-Touch

Einzelheiten zur Implementierung von Wake-on-Touch für Inbox-Treiber (HIDI2C, HIDSPI und HIDUSB) oder benutzerdefinierte Treiber finden Sie in der entsprechenden Dokumentation unten:

Thema Beschreibung

Aktivieren von Wake-on-Touch mit Inbox-Treibern

In diesem Thema wird erläutert, wie Wake-on-Touch mit den Inbox-HIDI2C-, HIDSPI- oder HIDUSB-Treibern implementiert wird.

Aktivieren von Wake-On-Touch mit einem benutzerdefinierten HID Mini-Treiber

In diesem Thema wird erläutert, wie Wake-on-Touch mit benutzerdefinierten HID-Minitreibern implementiert wird.

Glossar

Ausdruck/Abkürzung Definition
HID Eingabegeräte (Human Interface Devices, HID)
HIDClass Der Windows-Posteingangsklassentreiber für HID.
HID Mini-Treiber Ein Windows-HID-Transporttreiber, der an HIDClass bindet und damit funktioniert. Weitere Informationen finden Sie in der Dokumentation zu den Minitreibern und den HID-Klassentreibern.
D-State, D0, D2, D3hot, D3Cold Die Energiezustände des Geräts, die durch die ACPI-Spezifikation definiert sind.
Dx Eine der D-Zustände. Die tatsächliche "x"-Zahl wird von diesem Dokument nicht angegeben.
DeviceNotInUse Eine Bedingung, die eintritt, wenn das Betriebssystem in einen Zustand übergeht, in dem es keine (Touch-) Eingaben verarbeitet. Ein Beispiel ist Laptop-Deckel schließen.
DeviceInUse Im Gegensatz zu DeviceNotInUse ist es eine Bedingung, die auftritt, wenn das Betriebssystem zu einem Zustand wechselt, in dem er (Toucheingabe) eingaben kann. Ein Beispiel ist, dass der Laptopdeckel geöffnet ist.
Monitor, Bildschirm und Anzeige Sie werden manchmal austauschbar verwendet.
MonitorOn Eine Bedingung, die auftritt, wenn das Betriebssystem den primären Monitor aktiviert.
MonitorOff Gegenüber MonitorOn. Eine Bedingung, die auftritt, wenn das Betriebssystem den primären Monitor deaktiviert.
IRP E/A-Anforderungspaket. Weitere Informationen finden Sie in der Dokumentation zu E/A-Anforderungspaketen.
D-IRP Ein IRP, das anfordert, den Gerätestromzustand festzulegen.
HIDI2C Der Windows-Posteingangs-HID-Minitreiber HIDI2C.SYS, der I2C-Transportschicht für HID-Geräte gemäß der HIDI2C-Spezifikation implementiert.
HIDSPI Der Windows-Posteingangs-HID-Minitreiber HIDI2C.SYS, der I2C-Transportschicht für HID-Geräte gemäß der HIDI2C-Spezifikation implementiert.
HIDUSB Der Windows-Posteingangs-HID-Minitreiber HIDI2C.SYS, der I2C-Transportschicht für HID-Geräte gemäß der HIDI2C-Spezifikation implementiert.
ACPI Firmware Die ACPI-Codes, die in der System-Firmware (BIOS) implementiert werden.
Erweiterung INF Ein neuer Typ von Windows INF-Dateien in Windows 10. Weitere Informationen finden Sie in der Dokumentation zur Erweiterung INF-Datei .