Ctrl2Cap v2.0

By Mark Russinovich

公開日: 2006 年 11 月 1 日

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

はじめに

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

インストールと使用

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

Ctrl2cap のしくみ

NT 4 では、Ctrlcap は実際には非常に簡単です。 キーボード クラス ドライバーにアタッチするだけで、キーボード読み取り要求がキャッチされます。 要求ごとに、I/O 完了コールバックがポストされます。この時点で、返されるスキャンコードをピークします。 大文字とロックが発生した場合は、ctrl2cap を使用して左コントロールに変更します。

Win2K の Ctrl2cap は、キーボード クラス デバイスのスタックをキーボード クラス デバイスの上に重ね合う WDM フィルター ドライバーです。 これは、i8042 ポート デバイスとキーボード クラス デバイスの間に重ね合う Win2K DDK の kbfiltr の例とは対照的です。 いくつかの理由から、キーボード クラス デバイスの上にレイヤーを作成することを選択しました。

  • これは、インターセプトと操作IRP_MJ_READ Ctrl2cap が NT 4 バージョンと Win2K バージョン間で共有されるという意味です。
  • INF ファイルを指定する必要がならず、ユーザーが デバイス マネージャー を経由して Ctrl2cap をインストールします。適切なレジストリ値 (キーボード クラス デバイスの HKLM\System\CurrentControlSet\Control\Class UpperFilters 値) を変更します。

私のアプローチの欠点は次の点です (また、これは観点に応じて長所と短所があります)。

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

この特定のケースでは、長所が欠点を上回ると感じていました。 ただし、Ctrl2cap で Win2K キーボード フィルターをモデル化する前に、Win2K DDK から kbfiltr の例を調査してください。 キー入力シーケンス内の Kbfiltr のインターセプト ポイントを使用すると、kbfiltr が入力ストリームにキーストロークを挿入し、非常に簡単になります。

詳細情報

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

  • 2000 WINDOWS NTおよび Windows 2000 DDK サンプル \src\storage\filter\diskperf
  • Windows 2000 DDK サンプル \src\input\kbfiltr
  • "Windows NT ファイルシステムの調査"、Mark Russinovich、Dobb 博士のジャーナル、1997 年 2 月
  • 付随するファイル システム フィルター ドライバー Filemon

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

次の場所で実行されます。

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