Ctrl2Cap v2.0

Por Mark Russinovich

Fecha de publicación: 1° de noviembre de 2006

DownloadDescargar Ctrl2Cap(48 KB)

Introducción

Ctrl2cap es un controlador de dispositivo en modo kernel que filtra el controlador de clase de teclado del sistema para convertir los caracteres de bloqueo de mayúsculas en caracteres de control. Las personas que, como yo, migraron a NT desde UNIX están acostumbradas a tener la tecla de control ubicada donde está la tecla de bloqueo de mayúsculas en el teclado de PC estándar, por lo que una utilidad como esta es esencial para la eficiencia de la edición.

Instalación y uso

Instale Ctrl2cap con el comando "ctrl2cap /install" desde el directorio en el que descomprimió los archivos Ctrl2cap. Para desinstalar, escriba "ctrl2cap /uninstall".

Funcionamiento de Ctrl2cap

En NT 4 Ctrlcap es realmente bastante trivial. Simplemente se adjunta al controlador de clase de teclado para que capture las solicitudes de lectura del teclado. Para cada solicitud, publica una devolución de llamada de finalización de E/S, en cuyo momento echa un vistazo al código del examen que se devuelve. Si se trata de un bloqueo de mayúsculas, Ctrl2cap lo cambia a un control izquierdo.

En Win2K, Ctrl2cap es un controlador de filtro WDM que se superpone a la pila del dispositivo de clase del teclado sobre el dispositivo de clase de teclado. Esto contrasta con el ejemplo kbfiltr del DDK de Win2K que se superpone entre el dispositivo de puerto i8042 y el dispositivo de clase del teclado. Elegí superponer el dispositivo de clase de teclado por varias razones:

  • Significa que el código de interceptación y manipulación de Ctrl2cap IRP_MJ_READ se comparte entre las versiones NT 4 y Win2K.
  • No necesito proporcionar un archivo INF y hacer que el usuario recorra el Administrador de dispositivos para instalar Ctrl2cap: simplemente modifico el valor del Registro adecuado (el valor de HKLM\System\CurrentControlSet\Control\Class UpperFilters del dispositivo de clase del teclado).

La desventaja de mi enfoque es la siguiente (y esto puede ser una ventaja o una desventaja dependiendo de cómo se mire):

  • Dado que no se instala con un archivo INF a través del Administrador de dispositivos, no se advierte al usuario de que el archivo de controlador Ctrl2cap no está firmado digitalmente por Microsoft.

En este caso en particular, sentí que las ventajas superaban las desventajas. Sin embargo, antes de modelar un filtro de teclado Win2K en Ctrl2cap, sugiero encarecidamente que estudie el ejemplo kbfiltr del DDK de Win2K. El punto de interceptación de kbfiltr en la secuencia de entrada de teclas facilita la inserción de pulsaciones de teclas en el flujo de entrada.

Más información

Para obtener más información sobre cómo escribir controladores de filtro (controladores que se asocian a otros controladores para que puedan ver su entrada o salida), estos son los orígenes que se deben consultar:

  • Ejemplo de DDK de Windows NT y Windows 2000 \src\storage\filter\diskperf
  • El ejemplo de DDK de Windows 2000 \src\input\kbfiltr
  • "Examinar el sistema de archivos NT de Windows", por Mark Russinovich, Dr. Dobb's Journal, febrero de 1997
  • Controlador de filtros del sistema de archivos adjunto, Filemon

DownloadDescargar Ctrl2Cap(48 KB)

Se ejecuta en:

  • Cliente: Windows Vista y versiones posteriores.
  • Servidor: Windows Server 2008 y versiones posteriores.