使用 ACPI 在電腦上設定 USB 埠
如果系統需要 ACPI BIOS 變更才能正確反映 USB 埠設定,您應該考慮使用者在設定埠時將裝置連線到埠的能力。
如果您使用 ACPI 來指定 USB 埠的設定,您必須定義 USB 埠功能 (_UPC) 和實體位置描述 (_PLD) 物件。 雖然 ACPI 6.0 規格並未特別禁止只使用 _UPC 物件,但使用這兩個物件更精確地表示使用者能夠將裝置連線到埠。 僅使用 _UPC 物件可能不會正確或如預期般設定裝置容器群組。
如果已設定 DeviceRemovable 位,則連結至埠的裝置會從中樞卸載。 下表顯示指定埠的 ACPI 物件值如何影響 Windows 針對裝置報告之 USB 中樞描述元 DeviceRemovable 位的值。
USB 埠狀態 | 範例 | _Upc。PortIsConnectable byte | _Pld。UserVisible 位 (位 64) | 產生的 DeviceRemovable 位值 |
---|---|---|---|---|
可看見埠,而且使用者可以自由連線和中斷裝置連線。 |
埠會在使用者看得見的電腦上面板的臉部上公開。 |
設定 (0xFF) |
設定 (1) |
集合 |
埠已隱藏或內部,且使用者無法自由連線和中斷連線裝置。 |
埠直接連線到整合式裝置,例如膝上型電腦網路攝影機或內部 USB 中樞。 |
設定 (0xFF) |
已清除 |
已清除 |
埠是由 USB 主機控制器實際實作,但不會使用。 |
埠是未連線到埠外掛程式終端機或整合式裝置的過多埠。 |
已清除 (0x00) |
清除 |
已清除 |
注意 將埠定義為無法連線但使用者看得見的組態無效。
下列範例示範正確構成的 ACPI 來來源語言 (ASL) ,示範如何使用 _UPC 和 _PLD 物件來描述 USB 埠:
若要指定內部 (不是使用者可見) 且可連線到整合式裝置的埠, _UPC。PortIsConnectable 位元組必須設定為 0xFF 和 _PLD。UserVisible 位必須設定為 0。
在下列範例中,裝置會與電腦的裝置容器分組。
Name(_UPC, Package(){ 0xFF, // Port is connectable 0xFF, // Connector type (N/A for non-visible ports) 0x00000000, // Reserved 0, must be zero 0x00000000}) // Reserved 1, must be zero Name(_PLD, Buffer(0x10){ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
若要指定外部 (使用者可見) 且可連線到外部裝置的埠, _UPC。PortIsConnectable 位元組必須設定為 0xFF 和 _PLD。UserVisible 位必須設定為 1。 _JSON。PortConnectorType 位元組必須設定為 ACPI 3.0 規格第 9.13 節中指定的適當 USB 連接器類型。
在下列範例中,裝置會指派新的裝置容器,並顯示為個別的實體裝置。
Name(_UPC, Package(){ 0xFF, // Port is connectable 0x00, // Connector type, Type 'A' in this case 0x00000000, // Reserved 0, must be zero 0x00000000}) // Reserved 1, must be zero Name(_PLD, Buffer(0x10){ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
ACPI 中必須正確描述 USB Type-C 連接器,才能通過 USB Type-C ACPI 驗證 硬體實驗室套件測試。
USB Type-C 連接器的範例_UPC:
Name(_UPC, Package(4){
0x01, // Port is connectable
0x09, // Connector type: Type C connector - USB2 and SS with Switch
0x00000000, // Reserved0 – must be zero
0x00000000}) // Reserved1 – must be zero
如需 ACPI 6.0 介面的詳細資訊,請參閱 進階設定和電源介面規格修訂 6.0。