Ctrl2cap v2.0
Por Mark Russinovich
Publicado em: 1 de novembro de 2006
Baixar o Ctrl2Cap (48 KB)
Introdução
O Ctrl2cap é um driver de dispositivo no modo kernel que filtra o driver de classe do teclado do sistema para converter caracteres Caps Lock em caracteres Control. Pessoas como eu, que migraram para o NT do UNIX, estão acostumadas a ter a tecla Control localizada onde a tecla Caps Lock está no teclado padrão do computador e, portanto, um utilitário como esse é essencial para o nosso bem-estar de edição.
Instalação e Uso
Instale o Ctrl2cap executando o comando "ctrl2cap /install" a partir do diretório no qual você descompactou os arquivos do Ctrl2cap. Para desinstalar, digite "ctrl2cap /uninstall".
Como o Ctrl2cap funciona
No NT 4, o Ctrlcap é na verdade bastante trivial. O utilitário simplesmente anexa a si mesmo ao driver de classe do teclado de forma a conseguir pegar as solicitações de leitura do teclado. Para cada solicitação, o Ctrlcap posta um retorno de chamada de conclusão de E/S e, nesse ponto, dá uma espiada no código de verificação que está sendo retornado. Se acontecer de ser um Caps Lock, o Ctrl2cap o altera para um Control do lado esquerdo.
No Win2K, o Ctrl2cap é um driver de filtro do WDM que forma uma camada na pilha do dispositivo de classe do teclado acima do dispositivo de classe do teclado. Trata-se de um contraste com o exemplo do kbfiltr do DDK do Win2K, que aplica a si mesmo como uma camada entre o dispositivo de porta i8042 e o dispositivo de classe do teclado. Optei por colocar a camada em cima do dispositivo de classe do teclado por várias razões:
- Isso significa que o código de interceptação e manipulação do Ctrl2cap IRP_MJ_READ é compartilhado entre as versões NT 4 e Win2K.
- Não preciso fornecer um arquivo INF e fazer com que o usuário passe pelo Gerenciador de Dispositivos para instalar o Ctrl2cap: simplesmente modifiquei o valor apropriado do Registro (o valor HKLM\System\CurrentControlSet\Control\Class UpperFilters dos dispositivos de classe do teclado).
A desvantagem da minha abordagem é a seguinte (e pode ser uma vantagem ou desvantagem, dependendo do seu ponto de vista):
- Como não o instalo com um arquivo INF por meio do Gerenciador de Dispositivos, o usuário não é avisado de que o arquivo de driver do Ctrl2cap não é assinado digitalmente pela Microsoft.
Nesse caso específico, achei que as vantagens superavam as desvantagens. No entanto, antes de modelar um filtro de teclado Win2K no Ctrl2cap, sugiro fortemente que você estude o exemplo do kbfiltr do DDK do Win2K. O ponto de interceptação do Kbfiltr na sequência de entrada de teclas torna muito fácil para o kbfiltr injetar pressionamentos de tecla no fluxo de entrada.
Mais informações
Para obter mais informações sobre como escrever drivers de filtro (drivers que se anexam a outros drivers para que possam ver suas entradas e/ou saídas), aqui estão as fontes que você deve conferir:
- Amostra do DDK do Windows NT e do Windows 2000 \src\storage\filter\diskperf
- Amostra do DDK do Windows 2000 \src\input\kbfiltr
- "Examinando o Sistema de Arquivos do Windows NT", Por Mark Russinovich, Dr. Dobb's Journal, fevereiro de 1997
- O driver de filtro do sistema de arquivos que o acompanha, Filemon
Baixar o Ctrl2Cap (48 KB)
É executado em:
- Cliente: Windows Vista e superior.
- Servidor: Windows Server 2008 e superior.