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 и выше.