Поделиться через


Ctrl2Cap версии 2.0

Марк Руссинович

Опубликовано: 1 ноября 2006 г.

ЗагрузкаСкачать CTRL2Cap(48 КБ)

Введение

CTRL2cap — это драйвер устройства в режиме ядра, который фильтрует драйвер класса клавиатуры системы, чтобы преобразовать символы блокировки в символы управления. Люди, такие как я, которые перенесены в NT из UNIX, используются для того, чтобы иметь ключ управления, расположенный, где клавиша caps-lock находится на стандартной клавиатуре ПК, поэтому программа, как это важно для нашего редактирования благополучия.

Установка и использование

Установите CTRL2cap, выполнив команду CTRL2cap /install из каталога, в котором вы распакуировали файлы CTRL2cap. Чтобы удалить тип ctrl2cap /uninstall.

Как работает CTRL2cap

На NT 4 Ctrlcap на самом деле довольно тривиальный. Он просто подключается к драйверу класса клавиатуры, чтобы он перехватыл запросы на чтение клавиатуры. Для каждого запроса он отправляет обратный вызов завершения ввода-вывода, в какой момент он принимает взгляд на возвращаемый код сканирования. Если это будет блокировка с крышкой, ctrl2cap изменяет ее в левый элемент управления.

В Win2K CTRL2cap используется драйвер фильтра WDM, который слои в стеке устройства класса клавиатуры над устройством класса клавиатуры. Это в отличие от примера kbfiltr Win2K DDK, который выполняется между устройством порта i8042 и устройством класса клавиатуры. По нескольким причинам я выбрал слой на устройстве класса клавиатуры:

  • Это означает, что код перехвата и манипуляции ctrl2cap IRP_MJ_READ совместно используется между версиями NT 4 и Win2K.
  • Мне не нужно предоставлять INF-файл и пользователю нужно пройти диспетчер устройств для установки CTRL2cap . Я просто изменяю соответствующее значение реестра (значение HKLM устройств класса клавиатуры\System\CurrentControlSet\Control\Class UpperFilters).

Недостатком моего подхода является (и это преимущество или недостаток в зависимости от вашей точки зрения):

  • Так как я не устанавливаю INF-файл через диспетчер устройств, пользователь не предупреждает, что файл драйвера CTRL2cap не подписан корпорацией Майкрософт.

В этом случае я чувствовал, что преимущества перевешивают недостатки. Однако перед моделью фильтра клавиатуры Win2K на ctrl2cap я настоятельно рекомендуем изучить пример kbfiltr из Win2K DDK. Точка перехвата Kbfiltr в последовательности ввода ключей упрощает внедрение нажатий клавиш в входной поток.

Дополнительные сведения

Дополнительные сведения о написании драйверов фильтров (драйверы, которые присоединяются к другим драйверам, чтобы они могли видеть входные и/или выходные данные), см. в источниках для получения сведений:

  • Пример DDK для Windows NT и Windows 2000 \src\storage\filter\diskperf
  • Пример DDK для Windows 2000 \src\input\kbfiltr
  • "Изучение файловой системы Windows NT" , Марк Руссинович, журнал д-р Dobb, февраль 1997 г.
  • Сопровождающий драйвер фильтра файловой системы, Filemon

ЗагрузкаСкачать CTRL2Cap(48 КБ)

Выполняется:

  • Клиент: Windows Vista и выше.
  • Сервер: Windows Server 2008 и выше.