Ctrl2Cap версии 2.0

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

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

DownloadСкачать CTRL2Cap(48 КБ)

Введение

Ctrl2cap — это драйвер устройства в режиме ядра, который фильтрует драйвер класса клавиатуры системы для преобразования символов caps-lock в управляющие символы. Люди, как я, которые перешли на 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 в последовательности ввода ключей упрощает внедрение нажатий клавиш в входной поток kbfiltr.

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

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

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

DownloadСкачать CTRL2Cap(48 КБ)

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

  • Клиент: Windows Vista и более поздних версий.
  • Сервер: Windows Server 2008 и более поздних версий.