Ctrl2Cap v2.0
マーク・ルシノヴィチ
公開日: 2006 年 11 月 1 日
Ctrl2Cap(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
Ctrl2Cap(48 KB) のダウンロード
以下で実行されます。
- クライアント: Vista 以降Windows。
- サーバー: Windows Server 2008 以降。