Как откатить драйвер в Windows 11
Если после ручного или автоматического обновления драйверов вы наблюдаете проблемы с работой каких-либо устройств, либо системы в целом, одно из первых решений — попробовать откатить драйвер на его предыдущую версию.
В этой инструкции подробно о способах откатить драйвер устройства в Windows 11, а также дополнительная информация на тему, которая может пригодиться в контексте рассматриваемой темы.
Откат драйвера к предыдущей версии в диспетчере устройств
Первый, стандартный способ — использование функции отката драйвера в диспетчере устройств. Преимущество метода — он очень простой, недостаток — не всегда доступен. Шаги будут следующими:
- Откройте диспетчер устройств. Для этого в Windows 11 можно нажать правой кнопкой мыши по кнопке «Пуск» и выбрать нужный пункт контекстного меню, либо нажать клавиши Win+R на клавиатуре и использовать команду devmgmt.msc

- Найдите в списке устройство, драйвер которого нужно откатить и либо выполните двойной клик по устройству, либо нажмите по нему правой кнопкой мыши и выберите пункт «Свойства».
- В свойствах устройства перейдите на вкладку «Драйвер» и, если кнопка «Откатить» активна — используйте её для отката драйвера.

К сожалению, откат драйвера таким способом не всегда доступен: даже в случае, когда драйвер недавно обновлялся, кнопка «Откатить» может быть не активной. В этой ситуации можно попробовать следующий подход там же в диспетчере устройств:

- На вкладке «Драйвер» в свойствах устройства нажмите «Обновить драйвер».
- Выберите пункт «Найти драйверы на этом компьютере».
- Нажмите «Выбрать драйвер из списка доступных драйверов на компьютере».
- Проверьте, доступен ли драйвер другой версии в списке совместимых. При наличии — выберите его и нажмите кнопку «Далее» для запуска установки.
Точки восстановления системы
Точки восстановления Windows 11 могут создаваться как вручную, так и автоматически. Помимо прочих системных файлов они также содержат драйверы в версиях на момент создания. При наличии точек восстановления вы можете использовать их для отката драйверов:

- Нажмите правой кнопкой мыши по кнопке «Пуск» и выберите пункт «Выполнить», либо нажмите клавиши Win+R на клавиатуре
- Введите rstrui.exe и нажмите Enter
- Нажмите «Далее» и выберите нужную точку восстановления.
- Нажмите «Далее» для запуска восстановления системы.
Загрузка и установка более ранних версий драйверов с официального сайта
Если предыдущие варианты не подходят для вашего случая, вы можете поступить следующим образом:
- Скачать старую версию нужного драйвера с сайта производителя материнской платы, ноутбука, с сайтов NVIDIA ( на этой странице) или AMD ( на этой странице после поиска драйвера нажать «Previous Drivers» под списком доступных драйверов для вашего устройства).

- Удалить текущую версию драйвера: это можно сделать путем удаления устройства в диспетчере устройств: правый клик — удалить устройство — отметить пункт «Попытка удалить драйвер для этого устройства». Для видеокарт и драйверов Realtek можно использовать утилиту DDU (Display Driver Uninstaller).

- Установить старую версию драйвера вручную.
Откат к предыдущей, рабочей версии драйвера — (Windows 10).
Как вы уже знаете, каждому устройству в вашем компьютере необходим драйвер. Это может быть встроенный драйвер в систему Windows 10, драйвер установленный из каталога Центра обновления Windows, или установленный пользователем вручную с веб-сайта производителя оборудования.
Новая версия драйвера обычно улучшает функциональность и производительность вашего устройства, как правило в ней исправлены ошибки, которые присутствовали в предыдущей версии драйвера. Но иногда, новая версия приносит больше проблем и может сделать устройство непригодным для использования, тем самым нормальная работа вашего ПК будет невозможна.
В этой ситуации, вы можете вернуть, рабочее состояние компьютера — откатить проблемный драйвер устройства, вернув драйвер который работал не вызывая проблем. Это позволит удалить его и восстановить ранее установленный драйвер, который работал как надо, и вы можете ждать следующей версии драйвера, когда она станет доступной. Функция отката драйверов была введена в XP и есть в любом выпуске Windows до сих пор.
Откат не рабочего драйвера в Windows 10.
Шаг 1: Вам нужно открыть Диспетчер устройств. Вы можете открыть его следующим образом.
Кликните правой кнопкой мыши на кнопку Пуск или нажмите сочетания клавиш Win + X на клавиатуре.
Одним из пунктов меню будет — Диспетчер устройств. Нажмите на него.
Или,
нажмите сочетания клавиш Win + R и наберите в диалоговом окне Выполнить:
devmgmt.msc

Шаг 2: В открывшимся Диспетчере устройств, перейдите к нужной группе устройств и раскройте ее.
Например, если вы хотите откатить драйвер вашей видеокарты, то вам необходимо раскрыть группу под названием «Видеоадаптеры«, если необходимо вернуть старый драйвер для аудио карты, перейдите в раздел – звуковые, игровые и видеоустройства.
Кликните правой кнопкой мыши устройство в списке и нажмите Свойства в контекстном меню.

Шаг 3: В диалоговом окне свойств устройства перейдите на вкладку Драйвер. Там вы найдете кнопку Откатить. Нажмите на нее.


Шаг 4: В следующем диалоговом окне «Откатить«, чтобы помочь разработчикам вы можете указать причину, почему вы делаете откат драйвера. Выберите соответствующую причину и нажмите кнопку «Да«, чтобы подтвердить операцию.

Возможно вам, будет предложено перезагрузить компьютер, для перехода к предыдущей версии драйвера.
После того, как вы закончите откат драйвера, вы можете захотеть, запретить автоматическую установку драйверов с помощью Windows Update.
Учимся делать откат драйверов: 3 рабочих способа от WiFiGid

Нередкая ситуация – пользователь обновил драйвер (микропрограмму) для устройства в надежде на более плавную работу, а как итог получил большие проблемы. Установка свежего программного обеспечения для периферии или видеоадаптера – это хорошо, но не всегда. Если у пользователя случилась неудача с установкой ПО, его можно легко «откатить» – вернуть драйвер к предыдущей версии. После этого устройство будет работать как прежде, а пользователь сможет дождаться стабильного и проверенного обновления
Частые проблемы после обновления

Обновление программного обеспечения для внешней периферии, видеокарты, звуковых адаптеров и внешних накопителей чаще положительно сказывается на их работе. Но бывает, когда после обновления «дров» случаются следующие «неприятности»:
- компьютер более не идентифицирует устройство;
- внешняя периферия, или же тачпад/клавиатура перестают корректно функционировать или работать в целом;
- видеокарта хуже демонстрирует себя в работе/играх, конфликтует с конкретными приложениями;
- в обновлении ПО были убраны функции, которые востребованы пользователем;
- возникновение диалоговых окон, сообщающих об ошибках в работе устройства;
- видеоадаптер не определяется, из-за чего изображение на экран выводится не как нужно или его нет вообще.
Возникшие из-за обновления микропрограмм, проблемы легко устранить – выполнить откат, предусмотренный в каждой версии Windows. В каждой операционной системе он выполняется по схожему принципу.
Самая популярная ОС среди пользователей ПК на данный момент – Windows 10, поэтому возвращение драйверов к предыдущей версии будем рассматривать на ее примере. Если у вас другая операционка, и наша инструкция не помогла, напишите в комментарии!
Как выполнить в Windows?
Подробная инструкция представлена в следующем видео:
Откат новых драйверов – это довольно легкая задача, с которой справится даже рядовой пользователь компьютера. При восстановлении предыдущей версии ПО для конкретного устройства удаляется актуальная, а старый драйвер вновь скачивается и устанавливается.
Чтобы система сделала это автоматически, необходимо:
- Нажать правой кнопкой мыши на значок «Windows», выбрать пункт «Диспетчер устройств».

- Выбрать устройство, работу которого нельзя назвать удовлетворительной после обновления ПО. Пусть это будет видеоадаптер.
- Открыв список видеоадаптеров, нужно выбрать интересующий пользователя. В некоторых системах их два – интегрированная и дискретная видеокарта.

- После двойного нажатия на название устройства (видеокарты), откроется окно. В нем необходимо перейти на вкладку «Драйвер».
- В левом нижнем углу будет несколько опций, пользователя интересует «Откатить драйвер».

- После нажатия пользователя спросят причину, из-за которой он захотел восстановить прежнее ПО. Нужно дать ответ, начнется загрузка и установка микропрограммы.

Аналогично восстановление прошлой версии драйвера можно выполнить на любой версии Windows. Перейти в диспетчер устройств (можно найти через поиск Windows) и откатить ПО.
Стоит отметить, что «дрова» для видеокарты могут довольно долго загружаться и устанавливаться – все зависит от производительности ПК и скорости интернета. Остальное ПО восстанавливается практически моментально.
Ручной откат
Не всегда автоматическое восстановление получается. Рассмотрим вариант, когда кнопка не активна («Откатить драйвер»). О том, как сделать откат в таком случае, опять расскажем на примере видеокарты:
- Перейти в диспетчер устройств, выбрать нужный адаптер.
- Открыть его окно, выбрать вкладку «Драйвер».
- Нажать «Удалить».
После этого ПО устройства будет полностью удалено с компьютера пользователя. В случае с видеокартой, это будет сразу заметно – за вывод изображения начнет отвечать стандартное программное обеспечение Windows, все будет большим и в пикселях.
После того, как драйвер был удален, необходимо самостоятельно найти, скачать и установить ПО нужной версии для устройства. Сделать это можно на официальном сайте производителя устройства ввода, ноутбука, внешнего накопителя или видеоадаптера. Для надежности можно попробовать сборки, которым больше 2-3 месяцев.
Откат по точкам восстановления Windows
Если ранее упомянутые способы решения проблемы ее не устраняют, можно воспользоваться откатом целой системы до определенного момента. При этом восстановятся все прежние настройки, установленное ранее ПО – в том числе и «дрова».
Чтобы это сделать, необходимо:
- Нажать ПКМ на значок «Windows», выбрать опцию «Система».
- В левой части открывшегося окна расположено небольшое меню, выбрать «Защита системы».

- Откроется окно на вкладке «Защита системы», где будет пункт «Восстановление системы», внутри кнопка «Восстановить».

- Запустится диспетчер восстановления системы. Необходимо нажать «Далее» и ознакомиться с точками восстановления, которые есть на ПК.
- Если пользователь нашел подходящую – нужно выбрать ее и нажать «Продолжить».
Восстановление системы занимает какое-то время, все так же зависит от вашего накопителя: SSD или HDD.
Стоит отметить, что не каждому подойдет такой способ восстановления микропрограмм до предыдущей версии. Если пользователь вручную не создавал «Точки восстановления» или не выделил под них место в системе, это не было сделано автоматически после ее установки, ничего не получится. Диспетчер восстановления системы просто ничего не предложит для отката.
Заключение
Лучшие ответы на вопрос, как откатить драйвера – это первый и второй разделы, рассмотренные в этой статье. К третьему стоит прибегать только в случае, если после загрузки нового ПО на ПК начались проблемы и с его откатом они не устранились. Возвращение ПК по точке восстановления – это довольно серьезный инструмент, который может решить не только проблему с драйверами. Рекомендуем самостоятельно включить создание точек восстановления на ПК, чтобы в дальнейшем избежать каких-либо проблем с системой программного характера.
Настройка драйверов для классов клавиатуры и мыши
Этот раздел предназначен для разработчиков, которые настраивают драйверы для классов клавиатуры и мыши. Если вы хотите исправить мышь или клавиатуру, см. следующие статьи:
- Проблемы с мышью, сенсорной панелью и клавиатурой в Windows
- Устранение неполадок с беспроводной мышью, которая работает неправильно
Клавиатуры и мыши, отличные от HID, могут подключаться через несколько устаревших автобусов, но по-прежнему использовать одного и того же класса водителя. В этом разделе содержатся сведения о самих драйверах класса. В следующих разделах подробно описаны контроллеры.
В этом разделе описывается типичная физическая конфигурация клавиатуры и мыши в Microsoft Windows 2000 и более поздних версий.
На следующих рисунках показаны две распространенные конфигурации, в которых используется одна клавиатура и одна мышь.

На рисунке слева показаны клавиатура и мышь, подключенные к системной шине через независимые контроллеры. Типичная конфигурация состоит из клавиатуры в стиле PS/2, работающей через контроллер i8042, и последовательной мыши, работающей через контроллер последовательного порта.
Следующие дополнительные сведения важны для производителей клавиатуры и мыши:
- Стек операционной системы открывает клавиатуры в монопольном режиме по соображениям безопасности
- Windows поддерживает одновременное подключение нескольких устройств клавиатуры и мыши.
- Windows не поддерживает независимый доступ клиента к каждому устройству.
Функции драйвера класса
В этом разделе описываются функции следующих драйверов системного класса Microsoft Windows 2000 и более поздних версий:
- Kbdclass, драйвер класса для устройств GUID_CLASS_KEYBOARD класса устройств.
- Mouclass, драйвер класса для устройств GUID_CLASS_MOUSE класса устройств
Kbdclass реализует службу Kbdclass, а ее исполняемый образ kbdclass.sys.
Mouclass реализует службу Mouclass, и ее исполняемый образ mouclass.sys.
Kbdclass и Mouclass каждый компонент:
- Универсальная и аппаратно-независимая операция класса устройства.
- Plug and Play, управление питанием и инструментарий управления Windows (WMI).
- Работа устаревших устройств.
- Одновременная работа нескольких устройств.
- Подключение подпрограммы обратного вызова службы класса , используемой драйвером-функцией для передачи данных из буфера входных данных устройства в буфер данных драйвера класса.
Настройка объектов устройств
На следующем рисунке показана конфигурация объектов устройств для Plug and Play клавиатуры и мыши в стиле PS/2. Каждый драйвер класса создает объект устройства фильтра класса верхнего уровня (фильтр DO), который присоединяется к объекту устройства-функции (FDO) с помощью дополнительного фильтра устройств верхнего уровня DO. Драйвер фильтра устройств верхнего уровня создает фильтр устройств верхнего уровня DO. I8042prt создает функцию DO и присоединяет ее к объекту физического устройства (PDO), созданному драйвером корневой шины.

Клавиатура PS/2
Стек драйверов клавиатуры состоит из следующего.
- Kbdclass, драйвер фильтра класса клавиатуры верхнего уровня.
- Один или несколько дополнительных драйверов фильтра клавиатуры верхнего уровня
- I8042prt, драйвер функции
Мышь PS/2
Стек драйверов мыши состоит из следующих компонентов.
- Mouclass, драйвер фильтра класса мыши верхнего уровня
- Один или несколько дополнительных драйверов фильтра мыши верхнего уровня
- I8042prt, драйвер функции
Kbdclass и Mouclass могут поддерживать несколько устройств в двух разных режимах. В режиме «один к одному» каждое устройство имеет независимый стек устройств. Драйвер класса создает и присоединяет независимый класс DO к каждому стеку устройств. Каждый стек устройств имеет собственное состояние управления и входной буфер. Подсистема Microsoft Win32 получает доступ к входным данным с каждого устройства через уникальный объект файла.
В режиме гроссмейстера драйвер класса управляет всеми устройствами следующим образом:
- Драйвер класса создает класс гроссмейстера DO , который представляет все устройства, и подчиненный класс DO для каждого устройства. Драйвер класса присоединяет подчиненный класс DO к каждому стеку устройств. Под подчиненным классом DO стек устройств совпадает с стеком устройств, созданным в режиме «один к одному».
- Класс гроссмейстера DO управляет работой всех подчиненных DOS.
- Подсистема Win32 получает доступ ко всем входным данным устройства через объект файла, представляющий устройство класса Grandmaster.
- Все входные данные устройства помещается в буфер в очереди данных гроссмейстера.
- Гроссмейстер поддерживает единое глобальное состояние устройства.
Kbdclass и Mouclass работают в режиме «один к одному», если для их значения в реестре ConnectMultiplePorts задано значение 0x00 (в разделе HKLM\Services\CurrentControlSet\ \Parameters, где служба класса — Kbdclass или Mouclass). В противном случае Kbdclass и Mouclass работают в режиме гроссмейстера.
Открытие и закрытие с помощью драйвера класса
Подсистема Microsoft Win32 открывает все устройства клавиатуры и мыши для монопольного использования. Для каждого класса устройств подсистема Win32 обрабатывает входные данные со всех устройств так, как если бы входные данные поступили с одного устройства ввода. Приложение не может запросить получение входных данных только с одного конкретного устройства.
Подсистема Win32 динамически открывает Plug and Play устройства ввода после получения от диспетчера Plug and Play уведомлений о том, что интерфейс устройства GUID_CLASS_KEYBOARD или GUID_CLASS_MOUSE включен. Подсистема Win32 закрывается Plug and Play устройствах после получения уведомления о том, что открытый интерфейс отключен. Подсистема Win32 также открывает устаревшие устройства по имени (например, «\Device\KeyboardLegacyClass0»). Обратите внимание, что после успешного открытия устаревшего устройства подсистема Win32 не сможет определить, будет ли устройство в дальнейшем физически удалено.
После того как Kbdclass и Mouclass получат запрос на создание, они выполняют следующие действия для Plug and Play и устаревших операций:
- Операция Plug and Play Если устройство находится в состоянии Plug and Play запущено, драйвер класса отправляет IRP_MJ_CREATE запрос вниз по стеку драйверов. В противном случае драйвер класса завершает запрос, не отправляя запрос вниз по стеку драйверов. Драйвер класса задает доверенный файл, имеющий доступ на чтение к устройству. При наличии устройства grandmaster драйвер класса отправляет запрос на создание на все порты, связанные с подчиненными устройствами класса.
- Устаревшая операция Драйвер класса отправляет внутренний запрос на управление устройством драйверу порта, чтобы включить устройство.
Подключение обратного вызова службы к устройству
Драйверы классов должны подключить свою службу классов к устройству, прежде чем устройство можно будет открыть. Драйверы классов подключают свою службу классов после присоединения класса DO к стеку устройств. Драйвер функции использует обратный вызов службы класса для передачи входных данных с устройства в очередь данных класса для устройства. Подпрограмма завершения диспетчеризации ISR драйвера функции для устройства вызывает обратный вызов службы класса. Kbdclass предоставляет обратный вызов службы класса KeyboardClassServiceCallback, а Mouclass — обратный вызов службы класса MouseClassServiceCallback.
Поставщик может изменить операцию обратного вызова службы класса, установив драйвер фильтра верхнего уровня для устройства. Пример драйвера фильтра клавиатуры Kbfiltr определяет обратный вызов KbFilter_ServiceCallback , а пример драйвера фильтра мыши Moufiltr определяет обратный вызов MouFilter_ServiceCallback . Пример обратных вызовов службы фильтра можно настроить для изменения входных данных, передаваемых из буфера входных портов для устройства в очередь данных класса. Например, обратный вызов службы фильтров может удалять, преобразовывать или вставлять данные.
Обратные вызовы службы классов и фильтров подключаются следующим образом:
- Драйвер класса отправляет запрос на подключение внутреннего устройства в стеке устройств (IOCTL_INTERNAL_KEYBOARD_CONNECT или IOCTL_INTERNAL_MOUSE_CONNECT). Данные подключения класса задаются структурой CONNECT_DATA, которая включает указатель на объект устройства класса и указатель на обратный вызов службы класса.
- После того как драйвер фильтра получит запрос на подключение, он сохраняет копию данных класса connect и заменяет данные подключения запроса данными подключения фильтра. Данные подключения фильтра указывают указатель на объект устройства фильтра и указатель на обратный вызов службы драйвера фильтра. Затем драйвер фильтра отправляет отфильтрованный запрос на подключение к драйверу функции.
Обратные вызовы службы классов и фильтров вызываются следующим образом:
- Драйвер функции использует данные подключения фильтра для выполнения первоначального обратного вызова службы фильтров.
- После фильтрации входных данных обратный вызов службы фильтрации использует сохраненные данные подключения класса для обратного вызова службы класса.
Запрос и настройка устройства клавиатуры
I8042prt поддерживает следующие внутренние запросы управления устройствами для запроса сведений об устройстве клавиатуры и установки параметров на устройстве клавиатуры:
Дополнительные сведения обо всех запросах на управление устройствами с клавиатуры см. в справочнике по устройствам с интерфейсом пользователя.
Сканировать сопоставителя кода для клавиатур
В операционных системах Microsoft Windows коды сканирования, совместимые с PS/2, предоставляемые устройством ввода, преобразуются в виртуальные ключи, которые распространяются по системе в виде сообщений Windows. Если устройство выдает неправильный код сканирования для определенного ключа, будет отправлено неправильное сообщение виртуального ключа. Это можно исправить, написав драйвер фильтра, который анализирует коды сканирования, созданные встроенным ПО, и изменяет неправильный код сканирования на код, понятный системе. Однако это трудоемкий процесс, который иногда может привести к серьезным проблемам, если в драйвере фильтра на уровне ядра возникают ошибки.
Windows 2000 и Windows XP включают новый средство сопоставления кода сканирования, которое предоставляет метод, позволяющий сопоставлять коды сканирования. Сопоставления кода сканирования для Windows хранятся в следующем разделе реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
Примечание Под клавишей Control также есть клавиша Раскладка клавиатуры (обратите внимание на форму множественного числа), но ее не следует изменять.
В сочетании с раскладкой клавиатуры необходимо добавить значение карты Scancode . Это значение имеет тип REG_BINARY (маленький формат Endian) и имеет формат данных, указанный в следующей таблице.
| Смещение начала (в байтах) | Размер (в байтах) | Данные |
|---|---|---|
| 0 | 4 | Заголовок: сведения о версии |
| 4 | 4 | Заголовок: Флаги |
| 8 | 4 | Заголовок: число сопоставлений |
| 12 | 4 | Индивидуальное сопоставление |
| . | . | . |
| Последние 4 байта | 4 | Признак конца null (0x00000000) |
В первом и втором DWORDS хранятся сведения о заголовке и должны быть заданы все нули для текущей версии модуля сопоставления кода сканирования. Третья запись DWORD содержит общее количество следующих сопоставлений, включая завершающееся сопоставление со значением NULL. Таким образом, минимальное число будет равно 1 (сопоставления не указаны). Отдельные сопоставления следуют за заголовком. Каждое сопоставление имеет одну длину DWORD и делится на два поля длины WORD. В каждом поле WORD хранится код сканирования для сопоставляемого ключа.
После сохранения сопоставления в реестре необходимо перезагрузить систему, чтобы сопоставления вступили в силу. Обратите внимание, что если сопоставление кода сканирования необходимо при нажатии клавиш, шаг выполняется в пользовательском режиме непосредственно перед преобразованием кода сканирования в виртуальный ключ. При выполнении этого преобразования в пользовательском режиме могут возникнуть определенные ограничения, например неправильное сопоставление при выполнении в службах терминалов.
Чтобы удалить эти сопоставления, удалите значение реестра Scancode Map и перезагрузите его.
Пример 1
Ниже приведен пример. Чтобы переключить левую клавишу CTRL на клавишу CAPS LOCK, используйте редактор реестра (желательно Regedt32.exe), чтобы изменить ключ Scancode Map следующим значением:
00000000 00000000 03000000 3A001D00 1D003A00 00000000
В следующей таблице содержатся эти записи, разбитые на поля DWORD и переключение байтов.
Значение: интерпретация
0x00000000: Заголовок: Версия. Задайте для всех нулей.
0x00000000: Заголовок: Флаги. Задайте для всех нулей.
0x00000003: три записи на карте (включая пустую запись).
0x001D003A: левая клавиша CTRL -> CAPS LOCK (0x1D -> 0x3A).
0x003A001D: CAPS LOCK — левая> клавиша CTRL (0x3A —> 0x1D).
0x00000000: признак конца null.
Пример 2
Кроме того, можно добавить общедоступную клавишу на клавиатуре или удалить ключ, который никогда не используется. В следующем примере показано значение, хранящееся в scancode Map для удаления правой клавиши CTRL и изменения функциональности правой клавиши ALT, чтобы она работала как клавиша отключения звука:
00000000 00000000 03000000 00001DE0 20E038E0 00000000
В следующей таблице содержатся эти записи, разбитые на поля DWORD и переключение байтов.
Значение: интерпретация
0x00000000: Заголовок: Версия. Задайте для всех нулей.
0x00000000: Заголовок: Флаги. Задайте для всех нулей.
0x00000003: три записи на карте (включая пустую запись).
0xE01D0000: снимите правую клавишу CTRL (0xE01D 0x00> ).
0xE038E020: правая клавиша ALT —> отключить клавишу (0xE038 —> 0xE020).
0x00000000: признак конца null.
После создания необходимых данных их можно вставить в реестр несколькими способами.
- Можно создать REG-файл, который можно легко включить в системный реестр с помощью редактора реестра.
- Inf-файл также можно создать с разделом [AddReg], который содержит добавляемые сведения реестра.
- Regedt32.exe можно использовать для добавления сведений в реестр вручную.
Средство сопоставления кода сканирования имеет ряд преимуществ и недостатков.
Ниже перечислены преимущества.
- Средство сопоставления можно использовать в качестве простого исправления для исправления ошибок встроенного ПО.
- Часто используемые клавиши можно добавить на клавиатуру, изменив сопоставление в реестре. Ключи, которые не часто используются (например, правая клавиша CTRL), можно сопоставить со значением NULL (удалить) или обменять на другие ключи.
- Ключевые расположения можно легко изменить. Пользователи могут легко настраивать расположение часто используемых ключей в своих интересах.
Распознаются следующие недостатки:
- После сохранения сопоставления в реестре для ее активации требуется перезагрузка системы.
- Сопоставления, хранящиеся в реестре, работают на уровне системы и применяются ко всем пользователям. Эти сопоставления не могут работать по-разному в зависимости от текущего пользователя.
- Текущая реализация ограничивает функциональность карты таким образом, что сопоставления всегда применяются ко всем клавиатурам, подключенным к системе. В настоящее время невозможно создать карту для каждой клавиатуры.
Запрос устройства мыши
I8042prt поддерживает следующий внутренний запрос на управление устройством для запроса сведений об устройстве мыши:
Дополнительные сведения обо всех запросах на управление устройствами мыши см. в разделе Справочник по устройствам с интерфейсом пользователя.
Параметры реестра, связанные с драйвером класса мыши
Ниже приведен список разделов реестра, связанных с драйвером класса мыши.
- MaximumPortsServiced — не используется в Windows XP и более поздних версиях. Только для Windows NT4.
- PointerDeviceBaseName — задает базовое имя для объектов устройства, созданных драйвером устройства класса мыши.
- ConnectMultiplePorts — определяет, имеется ли один или несколько объектов устройства порта для каждого объекта устройства класса. Эта запись используется в основном драйверами устройств.
- MouseDataQueueSize — указывает количество событий мыши, буферизуемых драйвером мыши. Он также используется при вычислении размера внутреннего буфера драйвера мыши в непагрегированного пуле памяти.
Абсолютные указывающие устройства
Для устройств типа GUID_CLASS_MOUSE драйвер функции устройства:
- Обрабатывает входные данные для конкретного устройства.
- Создает структуры MOUSE_INPUT_DATA , необходимые для MouseClassServiceCallback.
- Передает MOUSE_INPUT_DATA структуры в очередь данных Mouclass, вызывая MouseClassServiceCallback в своей подпрограмме завершения диспетчеризации ISR.
Для абсолютно указывающего устройства драйвер функции устройства должен задать элементы LastX, LastY и Flags структур MOUSE_INPUT_DATA следующим образом:
-
Помимо деления входного значения устройства на максимальную возможность устройства, драйвер масштабирует входное значение устройства 0xFFFF:
LastX = ((device input x value) * 0xFFFF ) / (Maximum x capability of the device) LastY = ((device input y value) * 0xFFFF ) / (Maximum y capability of the device)
Ниже по типу устройства определяется, как реализуются эти специальные требования для абсолютного указывающего устройства.
- Устройства HID: Mouhid, драйвер функции Windows для устройств с мышью HID, реализует эти специальные требования автоматически.
- Устройства в стиле PS/2: Требуется драйвер фильтра верхнего уровня. Драйвер фильтра предоставляет обратный вызов IsrHook и обратный вызов службы класса. I8042prt вызывает IsrHook для обработки необработанных входных данных устройства, а также обратный вызов службы класса фильтра для фильтрации входных данных. Обратный вызов службы класса фильтра, в свою очередь, вызывает MouseClassServiceCallback. Сочетание обратного вызова IsrHook и обратного вызова службы класса обрабатывает входные данные для конкретного устройства, создает необходимые структуры MOUSE_INPUT_DATA, масштабирует входные данные устройства и устанавливает флаг MOUSE_MOVE_ABSOLUTE.
- Plug and Play устройства com-портов, перечисленные Serenum: Требуется драйвер функции Plug and Play. Драйвер функции создает необходимые структуры MOUSE_INPUT_DATA, масштабирует входные данные устройства и устанавливает флаг MOUSE_MOVE_ABSOLUTE перед вызовом MouseClassServiceCallback.
- Устройства, не относящиеся к Plug and Play COM-портам: Требуется драйвер функций для конкретного устройства. Драйвер функции создает необходимые структуры MOUSE_INPUT_DATA, масштабирует входные данные устройства и устанавливает флаг MOUSE_MOVE_ABSOLUTE перед вызовом MouseClassServiceCallback.
- Устройство на неподдерживаемой шине: Требуется драйвер функций для конкретного устройства. Драйвер функции создает необходимые структуры MOUSE_INPUT_DATA, масштабирует входные данные устройства и устанавливает флаг MOUSE_MOVE_ABSOLUTE перед вызовом MouseClassServiceCallback.
