Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Устройство универсальной кнопки — это стандартное устройство для формирования отчетов о событиях кнопки с помощью аппаратных прерываний и сопоставления этих прерываний с определенными использованиями, определенными в спецификации человеко-машинного интерфейса (HID).
Чтобы выразить функциональные возможности кнопки в операционной системе, требуются два фрагмента информации:
- Использование элемента управления HID
- Использование коллекции HID, к которой относится элемент управления
Использование — это сочетание страницы использования и идентификатора использования. Например, кнопка "повышения громкости" определяется как использование "Увеличение громкости" (Страница использования 0x0C, идентификатор использования 0xE9) в коллекции управления устройствами для потребителей (Страница использования 0x0C, идентификатор использования 0x01).
Идентификатор устройства ACPI для универсальной кнопки — ACPI0011. Windows загружает встроенный драйвер Корпорации Майкрософт, Hidinterrupt.sys для этого устройства.
Дополнительную информацию о универсальном кнопочном устройстве можно найти на веб-сайте спецификаций Unified Extensible Firmware Interface и скачать документ PDF Спецификации ACPI версии 6.0. Затем перейдите к разделу 9.19 с помощью левой панели.
Пример устройства кнопки ACPI для выпусков ОС Windows 10 Core
Пример описания кнопок на языке источника ACPI (ASL) для устройства под управлением ОС Windows 10 Core.
// Sample Buttons in ACPI Source Language for Windows 10.
Device(BTNS)
{
Name(_HID, "ACPI0011")
Name(_CRS, ResourceTemplate() {
GpioInt(Edge, ActiveBoth,...) {pin} // Index 0: Power Button
GpioInt(Edge, ActiveBoth,...) {pin} // Index 1: Volume Up Button
GpioInt(Edge, ActiveBoth,...) {pin} // Index 2: Volume Down Button
GpioInt(Edge, ActiveHigh,...) {pin} // Index 3: Camera Auto-focus Button
GpioInt(Edge, ActiveLow,...) {pin} // Index 4: Camera Shutter Button
GpioInt(Edge, ActiveBoth,...) {pin} // Index 5: Back Button
GpioInt(Edge, ActiveBoth,...) {pin} // Index 6: Windows/Home Button
GpioInt(Edge, ActiveBoth,...) {pin} // Index 7: Search Button
})
Name(_DSD, Package(2) {
//UUID for HID Button Descriptors:
ToUUID("FA6BD625-9CE8-470D-A2C7-B3CA36C4282E"),
//Data structure for this UUID:
Package(9) {
Package(5) {
0, // This is a Collection
1, // Unique ID for this Collection
0, // This is a Top-Level Collection
0x01, // Usage Page ("Generic Desktop Page")
0x0D // Usage ("Portable Device Control")
},
Package(5) {
1, // This is a Control
0, // Interrupt index in _CRS for Power Button
1, // Unique ID of Parent Collection
0x01, // Usage Page ("Generic Desktop Page")
0x81 // Usage ("System Power Down")
},
Package(5) {
1, // This is a Control
1, // Interrupt index in _CRS for Volume Up Button
1, // Unique ID of Parent Collection
0x0C, // Usage Page ("Consumer Page")
0xE9 // Usage ("Volume Increment")
},
Package(5) {
1, // This is a Control
2, // Interrupt index in _CRS for Volume Down Button
1, // Unique ID of Parent Collection
0x0C, // Usage Page ("Consumer Page")
0xEA // Usage ("Volume Decrement")
},
Package(5) {
1, // This is a Control
3, // Interrupt index in _CRS for Camera Auto-focus Button
1, // Unique ID of Parent Collection
0x90, // Usage Page ("Camera Control Page")
0x20 // Usage ("Camera Auto-focus")
},
Package(5) {
1, // This is a Control
4, // Interrupt index in _CRS for Camera Shutter Button
1, // Unique ID of Parent Collection
0x90, // Usage Page ("Camera Control Page")
0x21 // Usage ("Camera Shutter")
},
Package(5) {
1, // This is a Control
5, // Interrupt index in _CRS for Back Button
1, // Unique ID of Parent Collection
0x0C, // Usage Page ("Consumer Page")
0x224 // Usage ("AC Back")
},
Package(5) {
1, // This is a Control
6, // Interrupt index in _CRS for Windows/Home Button
1, // Unique ID of Parent Collection
0x07, // Usage Page ("Keyboard Page")
0xE3 // Usage ("Keyboard Left GUI")
},
Package(5) {
1, // This is a Control
7, // Interrupt index in _CRS for Search Button
1, // Unique ID of Parent Collection
0x0C, // Usage Page ("Consumer Page")
0x221 // Usage ("AC Search")
}
}
})
}
Примеры кнопок в ACPI для устройств под управлением настольных редакций Windows 10
Пример описания кнопок на языке исходного кода ACPI (ASL) для устройств под управлением классических выпусков Windows 10 (Home, Pro, Enterprise и Education).
Device(BTNS)
{
Name(_HID, "ACPI0011")
Name(_CRS, ResourceTemplate() {
GpioInt(Edge, ActiveBoth,...) {pin} // Index 0: Power Button
GpioInt(Edge, ActiveBoth,...) {pin} // Index 1: Volume Up Button
GpioInt(Edge, ActiveBoth,...) {pin} // Index 2: Volume Down Button
GpioInt(Edge, ActiveBoth,...) {pin} // Index 3: Windows/Home Button
GpioInt(Edge, ActiveBoth,...) {pin} // Index 4: Rotation Lock Button
})
Name(_DSD, Package(2) {
//UUID for HID Button Descriptors:
ToUUID("FA6BD625-9CE8-470D-A2C7-B3CA36C4282E"),
//Data structure for this UUID:
Package(6) {
Package(5) {
0, // This is a Collection
1, // Unique ID for this Collection
0, // This is a Top-Level Collection
0x01, // Usage Page ("Generic Desktop Page")
0x0D // Usage ("Portable Device Control")
},
Package(5) {
1, // This is a Control
0, // Interrupt index in _CRS for Power Button
1, // Unique ID of Parent Collection
0x01, // Usage Page ("Generic Desktop Page")
0x81 // Usage ("System Power Down")
},
Package(5) {
1, // This is a Control
1, // Interrupt index in _CRS for Volume Up Button
1, // Unique ID of Parent Collection
0x0C, // Usage Page ("Consumer Page")
0xE9 // Usage ("Volume Increment")
},
Package(5) {
1, // This is a Control
2, // Interrupt index in _CRS for Volume Down Button
1, // Unique ID of Parent Collection
0x0C, // Usage Page ("Consumer Page")
0xEA // Usage ("Volume Decrement")
},
Package(5) {
1, // This is a Control
3, // Interrupt index in _CRS for Windows/Home Button
1, // Unique ID of Parent Collection
0x07, // Usage Page ("Keyboard Page")
0xE3 // Usage ("Keyboard Left GUI")
},
Package(5) {
1, // This is a Control
4, // Interrupt index in _CRS for Rotation Lock Button
1, // Unique ID of Parent Collection
0x01, // Usage Page ("Generic Desktop Page")
0xCA // Usage ("System Display Rotation Lock Slider Switch")
}
}
})
}