觸控喚醒實作指南
簡介
喚醒觸控是 Windows 11 裝置的新選擇性 功能。 此功能可讓使用者使用手指觸控裝置的螢幕,以從睡眠中喚醒。 不支援使用畫筆喚醒螢幕。 喚醒觸控僅適用於明確選擇根據下列指導方針的裝置。
如果裝置已加入加入 「喚醒觸控」,OEM 可能會指定預設狀態(已啟用/停用—其他信息位於 下方的 OEM 考慮 一節中)。 使用者也有「觸控螢幕來喚醒」選項,可根據下圖中的 藍牙> 喜好設定來開啟或關閉它。
注意
如果裝置上不支援此功能,此設定將不會出現在此頁面。
本文件說明與 Windows 相容的 HID 型觸控裝置如何支援喚醒-On-Touch,以及 OEM/ODM 和觸控 IHD 需要執行的動作,取決於它們是否使用適用於 USB、I2C 或 SPI 的收件匣 HID 迷你埠,或特別針對缺少內箱驅動程式的總線使用 3P HID 迷你埠(亦即 Intel THC SPI)。
OEM 考慮
OEM 必須考慮是否針對每個設計和 SKU 實作「觸控喚醒」,因為功能有明顯的耗電量取捨。 按下鍵盤上的按鍵,與觸控板互動,或在配對的手寫筆上按兩下 藍牙 按鈕,都是喚醒裝置且耗電量較低的方法。
喚醒手勢
啟用「觸控喚醒」時,OEM 可以指定喚醒手勢為單一點選或按兩下使用觸控 IHV。 無論選擇哪一個手勢,都可以在顯示器的作用中區域的任何位置使用,以喚醒裝置。 一旦觸控控制器根據單一點選或按兩下手勢偵測到喚醒:
- 觸控控制器需要傳送代表單指向下和向上的 2 個畫面格(X、Y、TIP SET,後面接著 X、Y、TIP CLEAR),無論使用什麼手勢來引起喚醒
- 主機只會使用這 2 個畫面格做為使用者顯示狀態的指示,以開啟顯示器等。而且不會將該輸入傳遞給殼層或應用程式
- 向上和向下畫面格可以立即傳送,但如果存在scantime使用量,則應該在畫面之間遞增
注意
如果觸控控制器偵測到喚醒手勢並判斷提示中斷,以向主機指出輸入報告已就緒,但主機實際上不會發出讀取,觸控控制器應該會在某些廠商定義逾時后還原回低功率狀態。 這被視為異常案例,但觸控 IHV 可能需要考慮,以將待命中不必要的耗電量降到最低。
裝置狀態
如果要使用此功能,應考慮不同的狀態、裝置類型和電源狀態,以優化電池使用時間和可靠的UX。 例如,可轉換裝置可能只想在處於「平板電腦」狀態時啟用「觸控喚醒」,並在處於「膝上型計算機」狀態時將其停用,以節省電池。
喚醒觸控的可用性,無論是每當裝置處於待命狀態或只是在特定狀態時,都需要不同的實作方法。
對於蓋子的系統(例如膝上型電腦尺寸裝置),HID 堆疊會在關閉蓋子時自動停用觸控喚醒。 如果您的裝置符合此尺寸,或想要啟用觸控喚醒,而不論裝置狀態為何,請略過本節中的其餘內容, 並遵循本文件其餘部分的指引。
如果想要讓觸控喚醒只在特定狀態中啟用,建議實作篩選驅動程式,以控制觸控控制器是否根據裝置狀態進行喚醒。 在這種類型的實作中,篩選驅動程式會決定是否讓 IRP 流向 ACPI,以將裝置放入 D2(已喚醒)或是否要將裝置放至 D3 冷(關閉)。
如果裝置設計不允許 ACPI 根據姿勢從觸控喚醒時從觸控控制器提取電源 (D3 Cold),則應該實作廠商特定的機制,以允許觸控控制器保持電源 (D3 Hot),同時通知它進入其最低電源狀態,內部檢查,而不會掃描任何觸控。 此廠商特定機制可讓觸控控制器釐清是否要在SLEEP/Armed 中掃描用戶輸入,以取得下圖的喚醒狀態。
注意
此圖表適用於HIDI2C。 如需電源轉換的詳細資訊,包括 HIDUSB 和 HIDSPI,請參閱 觸摸屏電源管理。
最後,如果裝置想要根據狀態有不同的「觸控喚醒」行為,建議在發生狀態變更時喚醒裝置。 狀態變更是使用者輸入的明確指示,這也可確保當裝置進入新狀態時,觸控控制器的適當手臂/解除武裝。
喚醒觸控用戶設定的默認狀態
[喚醒觸控] 設定的預設值是 ON,適用於能夠的系統,但 OEM 可以新增登錄值,指定預設值應該改為 OFF。 變更應該套用至預設使用者,且裝置上的每位新用戶都會加以挑選。 一旦用戶變更設定,無論初始 OEM 預設值為何,其喜好設定一律優先。
若要這樣做,請建立下列登錄機碼,並將其儲存在預設使用者NTUSER中。Dat:
登錄位置: \HKEY_CURRENT_USER\Software\Microsoft\Input\WakeableInputTypes
登入機碼:
名稱 | 類型 | 值 |
---|---|---|
觸控 | REG_DWORD | 0 = Disabled,1 = Enabled |
啟用喚醒觸控的需求
一般需求
通常建議裝置指出支援從 D2 狀態喚醒,因此當操作系統 (OS) 需要將裝置進行觸控喚醒時,可以將它放入 D2。 如果OS不需要在觸控時武裝裝置喚醒,則會將裝置放入 D3。 這可讓裝置轉換為 D3Cold,以節省更大的電源。 您可以遵循下列 ACPI 一節中提供的_S0W相關指引來完成。 裝置起始的電源優化(不是由主機或操作系統起始的)應該以對操作系統透明的方式完成。
請注意,當操作系統(或主機)將裝置置於啟用「喚醒觸控」的狀態時,請依照本檔所述,根據裝置的 OEM 需求和/或尺寸,讓觸控控制器自行設定以喚醒適當的觸控手勢。 例如,具有沒有蓋子遮蓋的觸摸屏的裝置可能需要確保它不會造成假覺醒。
如果 HID 觸控裝置有任何其他最上層 HID 集合,例如廠商定義的集合,OEM 軟體可能會開啟檔句柄來執行裝置 I/O,只要 OEM 軟體完成這些裝置 I/O,就會關閉檔句柄,以減少 HID 裝置的耗電量。 請注意,Windows 11 22H2 已更新為管理喚醒觸控裝置的電源狀態,方法是透過關閉電源,而不允許從新式待命喚醒,只要不需要喚醒觸控,例如,當 [觸控螢幕喚醒] 設定為 [關閉] 或關閉膝上型計算機蓋時。 對於這類 OEM 軟體,副作用是,這類最上層 HID 集合的輸入也會在新式待命期間隱藏。
ACPI 韌體需求
如果觸控控制器裝置是在ACPI中定義,則必須實作下列命令來報告其喚醒功能和資源。
- _S0W方法,它會傳回裝置可能發出喚醒訊號的最低裝置電源狀態。
- _CRS 方法,定義能夠喚醒的插斷。
- _PRx方法,定義與每個支援 D 狀態相關聯的電源資源。
如需詳細資訊,請參閱 支持喚醒的中斷 (_CRS) 檔。
啟用喚醒觸控的驅動程式需求
如需如何實作收件匣驅動程式 (HIDI2C、HIDSPI 和 HIDUSB) 或自定義驅動程式的觸控喚醒詳細數據,請參閱下列個別檔:
主題 | 說明 |
---|---|
本主題討論如何使用收件匣 HIDI2C、HIDSPI 或 HIDUSB 驅動程式來實作「觸控喚醒」。 |
|
本主題討論如何使用自定義 HID 迷你驅動程式來實作觸控喚醒。 |
字彙
字詞/縮寫 | 定義 |
---|---|
藏 | 人類介面裝置。 |
HIDClass | 適用於 HID 的 Windows 收件匣類別驅動程式。 |
HID 迷你驅動程式 | 系結至 HIDClass 並使用 HIDClass 的 Windows HID 傳輸驅動程式。 如需詳細資訊,請參閱 Minidrivers 和 HID 類別驅動程式 檔。 |
D-State、D0、D2、D3hot、D3Cold | ACPI 規格所定義的裝置電源狀態。 |
Dx | 其中一個 D 狀態。 本檔未指定實際的 「x」 數位。 |
DeviceNotInUse | 當操作系統移至不取用 (觸控) 輸入的狀態時所發生的條件。 例如膝上型電腦蓋蓋關閉。 |
DeviceInUse | 與 DeviceNotInUse 相反,這是當作業系統移至可能取用 (觸控) 輸入的狀態時所發生的狀況。 例如膝上型計算機蓋子開啟。 |
監視、屏幕和顯示 | 它們有時會交替使用。 |
MonitorOn | 當操作系統開啟主要監視器時所發生的狀況。 |
MonitorOff | 與 MonitorOn 相反。 這是當操作系統關閉主要監視器時所發生的狀況。 |
IRP | I/O 要求封包。 如需詳細資訊,請參閱 I/O 要求封 包檔。 |
D-IRP | 要求設定裝置電源狀態的 IRP。 |
HIDI2C | Windows 收件匣 HID 迷你驅動程式 HIDI2C.SYS,會根據 HIDI2C 規格實作 HID 裝置的 I2C 傳輸層。 |
HIDSPI | Windows 收件匣 HID 迷你驅動程式 HIDSPI.SYS,根據 HIDSPI 規格實作 HID 裝置的 SPI 傳輸層。 |
HIDUSB | Windows 收件匣 HID 迷你驅動程式 HIDUSB.SYS,可根據 HID 和 USB 規格實作 HID 裝置的 USB 傳輸層。 |
ACPI 韌體 | 在系統韌體中實作的 ACPI 程式代碼(BIOS)。 |
擴充功能 INF | Windows 10 中新類型的 Windows INF 檔案。 如需詳細資訊,請參閱 使用擴充功能 INF 檔案 檔。 |