Стек устройств для Plug and Play ps/2-клавиатуры
Рассмотрим теперь стек устройств, которые создают указанные выше драйвера в драйверном стеке клавиатуры. Ниже на рисунке слева изображен стек устройств, приведенный в MSDN Library для PS/2-клавиатуры, справа — скриншот программы DeviceTree, показывающий реальную ситуацию на машине автора статьи.
Рис. 5. Конфигурация объектов устройств для Plug and Play PS/2-клавиатуры
В целом стек устройств (правильнее говорить о стеке объектов устройств) PS/2-клавиатуры состоит из:
физического объекта устройства клавиатуры (PDO), созданного драйвером шины (в данном случае, шины PCI) – \Device\00000066;
функционального объекта устройства клавиатуры (FDO), созданного и присоединенного к PDO драйвером i8042prt — неименованный объект (unnamed);
опциональных фильтр-объектов устройства клавиатуры, создающихся фильтр-драйверами клавиатуры, разрабатываемыми сторонними разработчиками;
верхнеуровневого фильтр-объекта устройства класса клавиатуры, созданного драйвером класса Kbdclass – \Device\KeyboardClass0.
- Клавиатура
- 2.1. Принципы работы клавиатуры
- 2.2. Порты для работы с клавиатурой
- 2.3. Аппаратное прерывание клавиатуры
- 2.4. Средства bios для работы с клавиатурой
- 2.4.1. Чтение символа с ожиданием
- 2.4.2. Проверка буфера на наличие в нем символов
- 2.4.3. Получение состояния переключающих клавиш
- 2.4.4. Установка временных характеристик клавиатуры
- 2.4.5. Запись символов в буфер клавиатуры
- 2.4.6 Чтение символа с ожиданием для 101-клавишной клавиатуры
- 2.4.7. Проверка буфера на наличие в нем символов для 101-клавишной клавиатуры
- 2.4.8. Получение состояния переключающих клавиш для 101-клавишной клавиатуры
- 2.5. Средства ms-dos для работы с клавиатурой
- 2.5.1. Буферизованный ввод с эхо-выводом
- 2.5.2. Буферизованный ввод без эхо-вывода
- 2.5.3. Нефильтрованный ввод без эхо-вывода
- 2.5.4. Ввод/вывод на консоль
- 2.5.5. Ввод строки символов
- 2.5.6. Проверка состояния стандартного ввода
- 2.5.7. Сброс буфера клавиатуры
- 2.6. Клавиатурные функции библиотеки Microsoft c
- 2.6. Драйвера режима ядра для ps/2 клавиатуры Стек драйверов для системных устройств ввода
- Стек драйверов для Plug and Play ps/2-клавиатуры
- Стек устройств для Plug and Play ps/2-клавиатуры
- Обработка клавиатурного ввода приложениями Поток необработанного ввода (получение данных от драйвера)
- Обработка сообщений конкретным окном
- Массивы состояния клавиш клавиатуры
- Клавиатурные ловушки
- Общая схема обработки
- Модель прямого ввода (Raw Input)