структура KEYBOARD_EXTENDED_ATTRIBUTES (ntddkbd.h)
KEYBOARD_EXTENDED_ATTRIBUTES задает расширенные атрибуты клавиатуры.
Синтаксис
typedef struct _KEYBOARD_EXTENDED_ATTRIBUTES {
UCHAR Version;
UCHAR FormFactor;
UCHAR KeyType;
UCHAR PhysicalLayout;
UCHAR VendorSpecificPhysicalLayout;
UCHAR IETFLanguageTagIndex;
UCHAR ImplementedInputAssistControls;
} KEYBOARD_EXTENDED_ATTRIBUTES, *PKEYBOARD_EXTENDED_ATTRIBUTES;
Члены
Version
Тип: UCHAR
Версия этой структуры.
Поддерживается только KEYBOARD_EXTENDED_ATTRIBUTES_STRUCT_VERSION_1 .
FormFactor
Тип: UCHAR
Форм-фактор клавиатуры (идентификатор использования: 0x2C1).
Значение | Описание |
---|---|
0x00 | Неизвестный форм-фактор. |
0x01 | Полноразмерная клавиатура. |
0x02 | Компактная клавиатура. Такие клавиатуры имеют ширину менее 13 дюймов. |
KeyType
Тип: UCHAR
Тип клавиши клавиатуры (идентификатор использования: 0x2C2).
Значение | Описание |
---|---|
0x00 | Неизвестный тип ключа. |
0x01 | Полные ключи перемещения. |
0x02 | Клавиши с низким перемещением, например на клавиатурах ноутбука. |
0x03 | Нулевое перемещение или виртуальные ключи. |
PhysicalLayout
Тип: UCHAR
Физическая раскладка клавиатуры (идентификатор использования: 0x2C3).
Значение | Описание |
---|---|
0x00 | Неизвестный макет |
0x01 | 101 (например, США) |
0x02 | 103 (Корея) |
0x03 | 102 (например, немецкий) |
0x04 | 104 (например, ABNT Бразилия) |
0x05 | 106 (DOS/V Япония) |
0x06 | Vendor—specific — если указано, необходимо также указать VendorSpecificPhysicalLayout . |
Это значение ссылается не на набор условных обозначений, напечатанный на ключах, а только на физический макет набора ключей, определяемый относительным расположением и формой текстовых ключей по отношению друг к другу. Это значение указывает, какой из фактических стандартных физических макетов, которым соответствует клавиатура. Эти макеты хорошо понятны.
VendorSpecificPhysicalLayout
Тип: UCHAR
Числовой идентификатор конкретной физической раскладки клавиатуры для конкретного поставщика (идентификатор использования: 0x2C4).
Значения для этого поля определяются поставщиком оборудования, но 0x00 определяется таким образом, чтобы не указывать физическую раскладку клавиатуры для конкретного поставщика. Если значение не равно нулю, PhysicalLayout должно иметь значение 0x06. Если этот идентификатор 0x00, physicalLayout не должен иметь значение 0x06.
IETFLanguageTagIndex
Тип: UCHAR
Строковый индекс дескриптора строки с тегом языка IETF (идентификатор использования: 0x2C5).
Фактическую строку можно получить с помощью IOCTL_HID_GET_INDEXED_STRING IOCTL в драйверах режима ядра или HidD_GetIndexedString вызова в приложениях пользовательского режима.
Этот тег языка указывает основной языковой стандарт набора условных обозначений клавиатуры, соответствующий IETF BCP 47 или его преемнику.
Если соответствующий тег языка IETF недоступен, например для пользовательских, адаптивных или новых макетов, для параметра устанавливается значение 0x00.
ImplementedInputAssistControls
Тип: UCHAR
Растровое изображение для физически реализованных элементов управления поддержкой ввода. (Идентификатор использования: 0x2C6).
bit | Описание |
---|---|
Все 0 | Элементы управления поддержкой ввода с клавиатуры не реализованы. |
Бит 0 | Предыдущее предложение |
Бит 1 | Следующее предложение |
Бит 2 | Предыдущая группа предложений |
Бит 3 | Следующая группа предложений |
Бит 4 | Принять предложение |
Бит 5 | Отмена предложения |
Все остальные биты зарезервированы. |
Комментарии
Эта структура используется с запросом IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES для возврата сведений о расширенных атрибутах, поддерживаемых клавиатурой.
Эти сведения поступают из дескриптора отчета о клавиатуре HID, описанного в разделе HiD Usage Table Review Request 42: Consumer Page Keyboard Assist Controls.
Требования
Требование | Значение |
---|---|
Заголовок | ntddkbd.h (включая Ntddkbd.h) |
См. также раздел
IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES