Ler em inglês

Partilhar via


Ctrl2Cap v2.0

Por Mark Russinovich

Publicado em: 1 de novembro de 2006

DownloadBaixar Ctrl2Cap(48 KB)

Introdução

Ctrl2cap é um driver de dispositivo de modo kernel que filtra o driver de classe de teclado do sistema para converter caracteres caps-lock em caracteres de controle. Pessoas como eu que migraram para o NT do UNIX estão acostumadas a ter a tecla de controle localizada onde a tecla caps-lock está no teclado padrão do PC, então um utilitário como esse é essencial para o nosso bem-estar de edição.

Instalação e Utilização

Instale Ctrl2cap executando o comando "ctrl2cap /install" do diretório no qual você descompactou os arquivos Ctrl2cap. Para desinstalar digite "ctrl2cap /uninstall".

Como funciona Ctrl2cap

No NT 4 Ctrlcap é realmente bastante trivial. Ele simplesmente se conecta ao driver de classe de teclado para que ele vai pegar solicitações de leitura do teclado. Para cada solicitação, ele posta um retorno de chamada de conclusão de E/S, momento em que dá uma olhada no scancode que está sendo retornado. Se acontecer de ser um caps-lock, ctrl2cap transforma-o em um controle à esquerda.

No Win2K Ctrl2cap é um driver de filtro WDM que camadas na pilha do dispositivo de classe de teclado acima do dispositivo de classe de teclado. Isso contrasta com o exemplo kbfiltr do Win2K DDK que se coloca em camadas entre o dispositivo de porta i8042 e o dispositivo de classe de teclado. Eu escolhi a camada em cima do dispositivo de classe de teclado por vários motivos:

  • Isso significa que o código de intercetação e manipulação de IRP_MJ_READ Ctrl2cap é compartilhado entre as versões NT 4 e Win2K.
  • Eu não preciso fornecer um arquivo INF e fazer com que o usuário passe pelo Gerenciador de Dispositivos para instalar Ctrl2cap - eu simplesmente modifico o valor apropriado do Registro (o valor HKLM\System\CurrentControlSet\Control\Class UpperFilters dos dispositivos de classe de teclado).

A desvantagem da minha abordagem é (e esta é uma vantagem ou desvantagem, dependendo do seu ponto de vista):

  • Como eu não instalo com um arquivo INF através do Gerenciador de dispositivos, o usuário não é avisado de que o arquivo de driver Ctrl2cap não está assinado digitalmente pela Microsoft.

Neste caso específico, senti que as vantagens superam as desvantagens. No entanto, antes de modelar um filtro de teclado Win2K em Ctrl2cap, sugiro fortemente que você estude o exemplo kbfiltr do DDK Win2K. O ponto de intercetação do Kbfiltr na sequência de entrada de teclas torna muito fácil para o kbfiltr injetar pressionamentos de teclas no fluxo de entrada.

Mais Informações

Para obter mais informações sobre como escrever drivers de filtro (drivers que se conectam a outros drivers para que eles possam ver sua entrada e/ou saída), aqui estão as fontes para conferir:

  • O exemplo de DDK do Windows NT e Windows 2000 \src\storage\filter\diskperf
  • O exemplo de 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

DownloadBaixar Ctrl2Cap(48 KB)

Funciona em:

  • Cliente: Windows Vista e superior.
  • Servidor: Windows Server 2008 e superior.