Ctrl2Cap v2.0
Por Mark Russinovich
Publicado: 1 de novembro de 2006
Baixar Ctrl2Cap(48 KB)
Introdução
Ctrl2cap é um controlador de dispositivo em modo kernel que filtra o controlador da classe de teclado do sistema para converter caracteres de bloqueio de tampas em caracteres de controlo. Pessoas como eu que migraram para NT a partir de UNIX estão habituadas a ter a chave de controlo localizada onde a chave de bloqueio de tampas está no teclado padrão do PC, por isso um utilitário como este é essencial para o nosso bem-estar de edição.
Instalação e Utilização
Instale o Ctrl2cap com o comando "ctrl2cap /install" a partir do diretório no qual desbloqueou os ficheiros Ctrl2cap. Para desinstalar o tipo "ctrl2cap /desinstalar".
Como funciona a Ctrl2cap
No NT 4 Ctrlcap é na verdade bastante trivial. Limita-se a ligar-se ao condutor da classe keyboard para que possa apanhar pedidos de leitura de teclado. Para cada pedido, regista uma chamada de conclusão de E/S, altura em que é preciso espreitar o código de digitalização que está a ser devolvido. Se acontecer de ser um caps-lock, ctrl2cap transforma-o num controlo esquerdo.
No Win2K Ctrl2cap está um controlador de filtro WDM que se encontra na pilha do dispositivo da classe de teclado acima do dispositivo de classe de teclado. Isto contrasta com o exemplo kbfiltr do Win2K DDK que se coloca entre o dispositivo porta i8042 e o dispositivo de classe de teclado. Escolhi colocar a camada em cima do dispositivo da classe keyboard por várias razões:
- Significa que o código de interceção e manipulação IRP_MJ_READ Ctrl2cap é partilhado entre as versões NT 4 e Win2K.
- Não preciso de fornecer um ficheiro INF e fazer com que o utilizador passe pelo Gestor de Dispositivos para instalar o Ctrl2cap - Simplesmente modifico o valor de Registo apropriado (o valor HKLM\System\CurrentControlSet\ControlSet\Classe\Class.'
A desvantagem da minha abordagem é (e esta é uma vantagem ou desvantagem dependendo do seu ponto de vista):
- Como não instalo com um ficheiro INF através do Gestor de Dispositivos, o utilizador não é avisado de que o ficheiro do controlador Ctrl2cap não é assinado digitalmente pela Microsoft.
Neste caso em particular, considerei que as vantagens superam as desvantagens. No entanto, antes de modelar um filtro de teclado Win2K no Ctrl2cap sugiro vivamente que estude o exemplo kbfiltr do Win2K DDK. O ponto de interceção do Kbfiltr na sequência de entrada de teclas torna muito fácil para o kbfiltr injetar teclas no fluxo de entrada.
Mais Informações
Para obter mais informações sobre a escrita de controladores de filtros (condutores que se ligam a outros condutores para que possam ver a sua entrada e/ou saída), aqui estão fontes para verificar:
- A amostra de Windows NT e Windows 2000 DDK \src\storage\filter\diskperf
- A Windows amostra de DDK de 2000 \src\input\kbfiltr
- "Examinando o sistema de ficheiros NT Windows", por Mark Russinovich, Dr. Dobb's Journal, fevereiro de 1997
- O controlador de filtro do sistema de ficheiros que o acompanha, Filemon
Baixar Ctrl2Cap(48 KB)
Continua:
- Cliente: Windows Vista e mais alto.
- Servidor: Windows Server 2008 e mais alto.