Implementierungshandbuch für Wake-On-Touch

Einführung

Wake-on-Touch ist eine neue, optionale Funktion, die auf Windows 11 Geräten verfügbar ist. Mit diesem Feature können Benutzer den Bildschirm eines Geräts mit dem Finger berühren, um ihn aus dem Ruhezustand zu wecken. Die Verwendung eines Stifts zum Aufwachen des Bildschirms wird nicht unterstützt. Wake-on-Touch ist nur auf Geräten verfügbar, die sich explizit gemäß den nachstehenden Anleitungen anmelden.

Wenn sich ein Gerät für Wake-on-Touch entschieden hat, kann der OEM den Standardzustand angeben (aktiviert/deaktiviert), weitere Informationen finden Sie im Abschnitt " OEM-Überlegungen " weiter unten. Benutzer verfügen auch über eine Option zum Aufwachen des Bildschirms, um ihn basierend auf ihrer Einstellung auf den neuen Bluetooth & Geräten ein- oder ausschalten zu können –> Die Seite "Toucheinstellungen" pro Abbildung unten.

Wake on Touch settings page

Hinweis

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

In diesem Dokument wird beschrieben, wie HID-basierte Touchgeräte, die mit Windows kompatibel sind, Wake-On-Touch unterstützen können und welche OEMs/ODMs und Touch-IHVs erforderlich sind, je nachdem, ob sie einen HID-Miniporttreiber für USB, I2C oder SPI oder einen 3P HID-Miniport speziell für einen Bus verwenden, der keinen Posteingangstreiber (z. B. Intel THC SPI) benötigt.

OEM-Überlegungen

Es ist zwingend erforderlich, dass OEMs überlegen, ob Wake-on-Touch für jedes Design und jede SKU implementiert werden soll, da für das Feature spürbare Leistungsverbrauchsabschläge vorhanden sind. Wenn Sie eine Taste auf der Tastatur drücken, mit dem Touchpad interagieren oder auf die Schaltfläche Bluetooth auf einem gekoppelten Stift klicken, sind alle Methoden zum Aufwachen des Geräts mit niedrigerem Stromverbrauch.

Wake-Geste

Wenn Wake-on-Touch aktiviert wird, können OEMs die Aktivierungsgeste angeben, die entweder ein einzelnes Tippen oder ein Doppeltippen mit der Touch-IHV sein soll. Welche Geste ausgewählt wird, kann überall im aktiven Bereich der Anzeige verwendet werden, um das Gerät zu aktivieren. Nachdem der Touchcontroller eine Wache erkannt hat, basierend auf der einzelnen Tipp- oder Doppelkippbewegung:

  1. Touchcontroller ist erforderlich, um 2 Frames zu senden, die repräsentativ für einen einzelnen Finger nach unten und oben sind (X, Y, TIP SET, gefolgt von X, Y, TIP CLEAR) unabhängig davon, welche Geste verwendet wurde, um die Aktivierung zu verursachen.
  2. Der Host verwendet diese 2 Frames nur als Hinweis auf die Benutzerpräsenz, um Displays zu aktivieren usw. und liefert diese Eingabe nicht an Shell oder Anwendungen.
  3. Die Up- und Down-Frames können beide sofort gesendet werden, aber wenn die Scanzeitnutzung vorhanden ist, sollte sie zwischen Frames erhöht werden.

Hinweis

Wenn der Touchcontroller eine Wake-Geste erkannt hat und eine Unterbrechung angibt, um dem Host anzugeben, dass Eingabeberichte bereit sind, aber der Host stellt den Lesevorgang nicht tatsächlich aus, sollte der Touchcontroller nach dem definierten Timeout des Anbieters wieder auf den Zustand mit niedriger Leistung zurückgesetzt werden. Dies gilt als ungewöhnlicher Fall, kann aber wünschenswert sein, dass touch IHV berücksichtigt werden kann, um unnötigen Stromverbrauch im Standbymodus zu minimieren.

Gerätestatus

Unterschiedliche Haltungen, Gerätetypen und Leistungszustände sollten alle berücksichtigt werden, um maximale Akkulaufzeit und zuverlässige UX zu optimieren, wenn das Feature verwendet werden soll. Ein Cabriogerät kann beispielsweise nur wake-on-Touch aktivieren, wenn es sich in seinem "Tablet"-Zustand befindet und es deaktivieren, wenn es sich im Zustand "Laptop" befindet, um Akku zu sparen.

Verfügbarkeit von Wake-on-Touch, sei es, wenn sich das Gerät im Standbymodus befindet oder nur in bestimmten Haltungen unterschiedliche Ansätze in der Implementierung erfordert.

Für Systeme mit einem Deckel (z. B. ein Laptop-Formfaktorgerät) deaktiviert der HID-Stapel automatisch Wake-on-Touch, wenn der Deckel geschlossen wird. Wenn Ihr Gerät diesem Formfaktor entspricht oder wenn es für wake-on-Touch aktiviert werden soll, unabhängig von der Gerätelage, überspringen Sie den rest der Inhalte in diesem Abschnitt, und befolgen Sie die Anweisungen im rest dieses Dokuments.

Wenn es für Wake-on-Touch erforderlich ist, nur in bestimmten Haltungen aktiviert zu werden, empfiehlt es sich, einen Filtertreiber zu implementieren, der steuert, ob der Touchcontroller für die Aktivierung basierend auf der Gerätelage bewaffnet ist. In diesem Implementierungstyp würde der Filtertreiber entscheiden, ob der IRP-Fluss an ACPI übertragen werden soll, um das Gerät auf D2 (zum Aufwachen bewaffnet) zu setzen oder ob das Gerät auf D3 Cold (aus) gesetzt werden soll.

Wenn das Gerätedesign den ACPI nicht erlaubt, die Leistung (D3 Kalt) vom Touchcontroller zu ziehen, wenn Wake-on-Touch nicht auf der Grundlage der Haltung gewünscht wird, sollte ein anbieterspezifischer Mechanismus implementiert werden, damit der Touchcontroller eingeschaltet bleibt (D3 Hot) während der Information, dass er zu seinem niedrigsten Leistungszustand, intern gating und nicht nach Fingereingaben sucht. Dieser herstellerspezifische Mechanismus ermöglicht es dem Touchcontroller, zu unterscheiden, ob die Benutzereingabe überprüft werden soll oder nicht im SLEEP/Armed for Wake-Zustand pro Abbildung unten.

Wake on Touch power transitions

Hinweis

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

Wenn es schließlich für ein Gerät gewünscht ist, unterschiedliche Wake-on-Touch-Verhaltensweisen basierend auf der Haltung zu haben, empfiehlt es sich, das Gerät zu wecken, wenn eine Haltungsänderung erfolgt. Haltungsänderungen sind ein klarer Hinweis auf die Benutzereingabe, und dadurch wird auch die richtige Armierung/Entwaffnung des Touchcontrollers sichergestellt, wenn das Gerät eine neue Haltung eingibt.

Standardstatus für Die Einstellung "Wake-On-Touch-Benutzer"

Die Standardeinstellung für die Wake-On-Touch-Einstellung ist on für fähige Systeme, aber ein OEM kann einen Registrierungswert hinzufügen, der den Standardwert angibt, sollte stattdessen DEAKTIVIERT sein. Die Änderung sollte auf den Standardbenutzer angewendet werden und wird von jedem neuen Benutzer auf dem Gerät abgerufen. Sobald der Benutzer die Einstellung geändert hat, hat seine Einstellung immer Vorrang, unabhängig davon, was der ursprüngliche OEM-Standard 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 type 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 die Unterstützung für die Aktivierung aus dem D2-Zustand angibt, damit das Betriebssystem das Gerät für die Toucheingabe armieren muss, kann es in D2 platziert werden. Wenn das Betriebssystem das Gerät nicht für die Toucheingabe armieren muss, wird das Gerät in D3 platziert. Dadurch kann das Gerät in D3Cold umsteigen, um eine höhere Stromeinsparung zu erzielen. Dies kann erfolgen, indem Sie den im abschnitt "ACPI" angegebenen _S0W zugehörigen Anleitungen folgen. Geräteinitiierte Energieoptimierungen (die vom Host oder Betriebssystem nicht initiiert werden) sollten auf eine Weise transparent für das Betriebssystem erfolgen.

Bitte beachten Sie, wenn das Betriebssystem (oder host) das Gerät in einen Zustand versetzt, der "Wake-On-Touch" aktiviert, wie in dieser Dokumentation beschrieben, es ist bis zum Touchcontroller erforderlich, um sich selbst zu konfigurieren, um eine entsprechende Touchgeste zu aktivieren, basierend auf den OEM-Anforderungen und/oder formfaktor des Geräts. Beispielsweise muss ein Gerät mit einem Touchscreen, der nicht von einem Deckel verdeckt ist, möglicherweise sicherstellen, dass es keine spurlosen Weckungen verursacht.

Wenn ein HID-Touchgerät über HID-Sammlungen auf oberster Ebene verfügt, z. B. anbieterdefinierte Sammlungen, zu denen OEM-Software Dateihandles zum Ausführen von Geräte-I/Os erstellen kann, stellen Sie bitte sicher, dass diese Dateiziehpunkte geschlossen werden, sobald die OEM-Software diese Geräte-I/A abgeschlossen hat, da das Öffnen dieser Dateihandpunkte verhindert, dass das Gerät die Kriterien von DeviceNotInUse erfüllt, Daher wird das Gerät immer aufgefordert, sich im Wake-On-Touch-Zustand zu befinden, auch wenn der Monitor deaktiviert ist, was mehr Strom verbrauchen kann, wenn er nicht wirklich benötigt wird.

ACPI-Firmwareanforderungen

Wenn das Touchcontrollergerät in ACPI definiert ist, muss es Folgendes implementieren, um seine Wake-Funktionen und Ressourcen zu melden.

  1. _S0W Methode zurück, die den niedrigsten Gerätestromzustand zurückgibt, unter dem das Gerät möglicherweise die Wache signalisiert.
  2. _CRS Methode, die die fähige Unterbrechung definiert.
  3. _PRx Methoden, die die Leistungsressourcen definieren, die jedem unterstützten D-Zustand zugeordnet sind.

Weitere Informationen finden Sie in der Dokumentation zu Wake-fähigen Unterbrechungen (_CRS).

Treiberanforderungen für die Aktivierung von Wake-on-Touch

Ausführliche Informationen zum Implementieren von Wake-on-Touch für Posteingangstreiber (HIDI2C, HIDSPI und HIDUSB) oder benutzerdefinierte Treiber finden Sie in der folgenden Dokumentation:

Thema BESCHREIBUNG

Aktivieren von Wake-on-Touch mit Posteingangstreibern

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

Aktivieren von Wake-on-Touch mit benutzerdefinierten HID-Minitreibern

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

Glossar

Begriff/Abkürzung Definition
HID Geräte der menschlichen Schnittstelle.
HIDClass Der Windows Posteingangsklassentreiber für HID.
HID Minitreiber Ein Windows HID-Transporttreiber, der an HIDClass gebunden und funktioniert. Weitere Informationen finden Sie in der Dokumentation zu Minidrivern und den HID-Klassentreibern .
D-State, D0, D2, D3hot, D3Cold Die Geräteleistungszustände, die von der ACPI-Spezifikation definiert sind.
Dx Einer der D-Zustände. Die tatsächliche "x"-Zahl ist von diesem Dokument nicht angegeben.
DeviceNotInUse Eine Bedingung, die auftritt, wenn das Betriebssystem in einen Zustand wechselt, unter dem sie keine Eingaben (Toucheingabe) verwendet. Ein Beispiel ist laptopdeckel schließen.
DeviceInUse Im Gegensatz zu DeviceNotInUse ist es eine Bedingung, die auftritt, wenn das Betriebssystem zu einem Zustand wechselt, unter 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 Im Gegensatz zu MonitorOn. Es ist eine Bedingung, die auftritt, wenn das Betriebssystem den primären Monitor deaktiviert.
IRP I/O-Anforderungspaket. Weitere Informationen finden Sie in der Dokumentation zu I/O-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 HIDSPI.SYS, der SPI-Transportschicht für HID-Geräte gemäß der HIDSPI-Spezifikation implementiert.
HIDUSB Der Windows Posteingangs-HID-Minitreiber HIDUSB.SYS, der USB-Transportschicht für HID-Geräte gemäß den HID- und USB-Spezifikationen 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 Verwendung einer Erweiterung INF-Datei .