搜尋 ACPI 識別碼
查明 ACPI 或 PNP 識別碼屬於哪家製造商;若是標準識別碼,還能知道是什麼裝置。依照 Windows 裝置管理員、Linux 的 /sys/bus/acpi/devices 資料夾或 DSDT 表格中 _HID 顯示的原樣貼上識別碼,然後按搜尋。
接受 ACPI\VEN_INT&DEV_33A1、ACPI\PNP0C0A、INTC1055、PNP0C0A:00、0x0A0CD041 或僅前綴
範例:

運作方式

韌體透過 ACPI 表格描述作業系統無法自行偵測的裝置,例如電池、按鈕、感測器、I²C 控制器或 TPM。每個裝置都有一個硬體識別碼(_HID),由製造商前綴和該製造商選定的四位十六進位數字組成。

前綴由 UEFI Forum 在兩份註冊清單中分配:三個字母的 PNP ID 註冊清單,以及四個字元的 ACPI ID 註冊清單。本工具會在這兩份註冊清單中尋找前綴;對於由 Microsoft 和 ACPI 規格定義的標準識別碼,還會告訴您是什麼裝置。

範例

ACPI\PNP0A08Microsoft — PCI Express Root BridgeWindows 裝置管理員的格式。PNP0xxx 是任何製造商都可以使用的通用識別碼。
ACPI\VEN_INT&DEV_33A1Intel Corporation — Intel Power Engine Plug-in (Modern Standby)Windows 在硬體識別碼中使用的 VEN_/DEV_ 形式。Intel 在 ACPI ID 註冊清單出現之前就已使用 INT 前綴。
Name (_HID, EisaId ("PNP0C0A"))PNP0C0A — Control Method Battery — EisaId 0x0A0CD041反組譯後的 DSDT 表格中的一行。本工具也接受 EisaId 產生的壓縮整數。
10EC5640Realtek Semiconductor Co., Ltd.部分製造商使用 PCI-SIG 分配給它們的供應商 ID 作為前綴;此時製造商資訊來自 PCI 目錄。

使用情境

  • 識別裝置管理員中硬體識別碼以 ACPI\ 開頭的未知裝置。
  • 根據 _HID 為筆記型電腦的感測器、按鈕或 I²C 控制器尋找正確的驅動程式。
  • 在偵錯韌體或撰寫 ACPI 修補程式時,解讀 DSDT 或 SSDT 表格中宣告的裝置。
  • 了解螢幕在 EDID 中回報的三字母製造商代碼對應哪家公司。

常見問題

在哪裡可以找到裝置的 ACPI 識別碼?

在 Windows 中,於裝置管理員開啟裝置的內容,在「詳細資料」索引標籤的 "硬體識別碼" 屬性中查看。在 Linux 中,每個裝置都會顯示為 /sys/bus/acpi/devices 下名稱中含有其識別碼的資料夾,該資料夾中的 hid 檔案也包含此識別碼。在以 acpidump 和 iasl 反組譯的韌體表格中,它是每個裝置的 _HID 物件。

為什麼能找到製造商卻找不到裝置?

UEFI Forum 的註冊清單只分配前綴。其後四位數字的意義由各製造商自行決定,並沒有像 PCI 或 USB 那樣的公開目錄。只有標準識別碼(如 Microsoft 的 PNP0xxx 或規格中的 ACPI00xx)以及一些廣泛使用的識別碼,才能得知對應的裝置。

PNP ID 和 ACPI ID 有什麼差別?

PNP ID 的前綴為三個字母,源自 1990 年代的隨插即用;同樣的代碼也用於在 EDID 中識別螢幕製造商。ACPI ID 的前綴為四個字母或數字,是目前使用的格式。兩者在前綴之後都接著四位十六進位數字。

什麼是壓縮的 EisaId?

在 ASL 語言中,EisaId 巨集會將 PNP ID 轉換為 32 位元整數:每個字母佔 5 位元,產品編號佔隨後的兩個位元組。因此,反組譯表格時有時會看到 0x0A0CD041 這樣的數字,而不是 PNP0C0A。本工具接受這種數字,並顯示任何 PNP ID 的壓縮形式。

資料多久更新一次?

本工具使用 UEFI Forum 發布的 ACPI ID 和 PNP ID 註冊清單的副本,並定期更新。結果旁會顯示該副本的日期以及前綴的核准日期。