Ctrl2Cap v2.0

マーク・ルシノヴィチ

公開日: 2006 年 11 月 1 日

DownloadCtrl2Cap(48 KB) のダウンロード

はじめに

Ctrl2cap は、システムのキーボード クラス ドライバーをフィルター処理して、Caps-lock 文字を制御文字に変換するカーネル モード デバイス ドライバーです。 UNIXからNTに移行した私のような人々は、キャップロックキーが標準のPCキーボード上にある場所に制御キーを配置することに慣れているので、このようなユーティリティは、私たちの編集の幸福のために不可欠です。

インストールと使用

Ctrl2cap ファイルを解凍したディレクトリからコマンド "ctrl2cap /install" を実行して、Ctrl2cap をインストールします。 アンインストールするには、「ctrl2cap /uninstall」と入力します。

Ctrl2cap のしくみ

NT 4の場合、Ctrlcapは実際には非常に簡単です。 キーボードの読み取り要求をキャッチできるように、それ自体をキーボード クラス ドライバーにアタッチするだけです。 要求ごとに I/O 完了コールバックがポストされ、その時点で返されるスキャンコードがピークされます。 大文字と小文字がロックされている場合は、Ctrl2cap によって左コントロールに変更されます。

Win2K Ctrl2cap では、キーボード クラス デバイスの上にあるキーボード クラス デバイスのスタック内のレイヤーを行う WDM フィルター ドライバーです。 これは、i8042 ポート デバイスとキーボード クラス デバイスの間で自身をレイヤー化する Win2K DDK の kbfiltr の例とは対照的です。 私はいくつかの理由でキーボードクラスデバイスの上に重ねて選びました:

  • これは、Ctrl2cap IRP_MJ_READインターセプトと操作コードが NT 4 と Win2K のバージョン間で共有されることを意味します。
  • INF ファイルを指定する必要がなく、ユーザーが Ctrl2cap をインストールするためにデバイス マネージャーを実行する必要はありません。適切なレジストリ値 (キーボード クラス デバイスの HKLM\System\CurrentControlSet\Control\Class UpperFilters 値) を変更するだけです。

私のアプローチの欠点は(そしてあなたの視点に応じてこの利点または欠点です):

  • デバイス マネージャー経由で INF ファイルをインストールしないため、Ctrl2cap ドライバー ファイルが Microsoft によってデジタル署名されていないことをユーザーに警告されません。

この場合、欠点を上回るメリットを感じました。 ただし、Ctrl2cap で Win2K キーボード フィルターをモデル化する前に、Win2K DDK の kbfiltr の例を調うことを強くお勧めします。 キー入力シーケンス内の Kbfiltr のインターセプト ポイントを使用すると、kbfiltr が入力ストリームにキーストロークを挿入することが非常に簡単になります。

詳細情報

フィルター ドライバー (入力や出力を確認できるように他のドライバーにアタッチするドライバー) の記述の詳細については、次の資料を参照してください。

  • Windows NTとWindows 2000 DDK サンプル \src\storage\filter\diskperf
  • Windows 2000 DDK サンプル \src\input\kbfiltr
  • 「Windows NTファイルシステムを調べる」Mark Russinovich、ドブ博士のジャーナル、1997年2月
  • 付属のファイル システム フィルター ドライバー Filemon

DownloadCtrl2Cap(48 KB) のダウンロード

以下で実行されます。

  • クライアント: Vista 以降Windows。
  • サーバー: Windows Server 2008 以降。