Ctrl2Cap v2.0

Di Mark Russinovich

Data di pubblicazione: 1° novembre 2006

DownloadScaricare CTRL2Cap(48 KB)

Introduzione

Ctrl2cap è un driver di dispositivo in modalità kernel che filtra il driver di classe della tastiera del sistema per convertire i caratteri di blocco maiuscole in caratteri di controllo. Le persone come il sottoscritto, che hanno eseguito la migrazione a NT da UNIX, sono solite avere il tasto di controllo in corrispondenza di quello del blocco maiuscole sulla tastiera standard del PC, quindi un'utilità come questa è essenziale per un’attività di editing fluida.

Installazione e utilizzo

Installare Ctrl2cap eseguendo il comando "ctrl2cap /install" dalla directory in cui sono stati decompressi i file Ctrl2cap. Per disinstallare il tipo "ctrl2cap /uninstall".

Funzionamento di Ctrl2cap

In NT 4, Ctrlcap è in realtà piuttosto semplice. Si collega semplicemente al driver di classe della tastiera, in modo da intercettare le richieste di lettura da tastiera. Per ogni richiesta, invia un callback I/O di completamento; a quel punto, viene visualizzata una panoramica sul codice di analisi restituito. Se si tratta di un blocco maiuscole, ctrl2cap lo modifica in un controllo a sinistra.

In Win2K, CTRL2cap è un driver di filtro WDM che esegue il layer dello stack del dispositivo della classe di tastiera sopra il dispositivo della classe della tastiera. Questo è in contrasto con l'esempio kbfiltr di Win2K DDK che autoesegue il layer tra il dispositivo della porta i8042 e il dispositivo della classe della tastiera. Io ho scelto di eseguire il layer sopra il dispositivo della classe della tastiera per diversi motivi:

  • Significa che il codice di intercettazione e manipolazione ctrl2cap IRP_MJ_READ è condiviso tra le versioni NT 4 e Win2K.
  • Non ho bisogno di fornire un file INF e di fare in modo che l'utente si rechi in Gestione dispositivi per installare Ctrl2cap: è sufficiente modificare il valore appropriato del Registro di sistema (il valore HKLM\System\CurrentControlSet\Control\Class UpperFilters dei dispositivi della classe della tastiera).

Lo svantaggio del mio approccio è (ma questo può essere un vantaggio o uno svantaggio a seconda del punto di vista):

  • A causa della mancata installazione con un file INF tramite Gestione dispositivi, l'utente non viene avvisato del fatto che il file del driver Ctrl2cap non è firmato digitalmente da Microsoft.

In questo particolare caso, mi sento di dire che i vantaggi superano gli svantaggi. Tuttavia, prima di modellare un filtro da tastiera Win2K su Ctrl2cap, suggerisco vivamente di studiare l'esempio kbfiltr dal DDK Win2K. Il punto di intercettazione di Kbfiltr nella sequenza di input della chiave semplifica l'inserimento delle sequenze di tasti nel flusso di input da parte di kbfiltr.

Ulteriori informazioni

Per altre informazioni sulla scrittura su driver di filtro (driver che si collegano ad altri driver in modo che possano visualizzare l'input e/o l'output), ecco le fonti da consultare:

  • Esempio di Windows NT e DDK di Windows 2000 \src\storage\filter\diskperf
  • Esempio DDK di Windows 2000 \src\input\kbfiltr
  • "Esame del file system di Windows NT", di Mark Russinovich, dott. Dobb's Journal, febbraio 1997
  • Driver di filtro del file system a corredo, Filemon

DownloadScaricare CTRL2Cap(48 kB)

In esecuzione su:

  • Client: Windows Vista e versioni successive.
  • Server: Windows Server 2008 e versioni successive.