Ctrl2Cap v2.0

作者:Mark Russinovich

發佈日期︰2006 年 11 月 1 日

Download下載 Ctrl2Cap(48 KB)

簡介

Ctrl2cap 是核心模式裝置驅動程式,可篩選系統的鍵盤類別驅動程式,以便將 caps-lock 字元轉換成控制字元。 像我一樣從 UNIX 移轉至 NT 的人,習慣使用標準電腦鍵盤上有 caps-lock 鍵的控制鍵,因此這類公用程式對於編輯友善程度至關重要。

安裝與使用

從您解壓縮 Ctrl2cap 檔案所在的目錄,執行命令 "ctrl2cap /install" 安裝 Ctrl2cap。 若要解除安裝,請輸入 "ctrl2cap /uninstall"。

Ctrl2cap 的運作方式

在 NT 4 Ctrlcap 實際上相當微不足道。 只是將本身附加至鍵盤類別驅動程式,以便攔截鍵盤讀取要求。 針對每個要求,它會張貼 I/O 完成回呼,屆時它會查看所傳回的掃描碼。 如果碰巧是 caps-lock,ctrl2cap 會將它變更為左控制項。

在 Win2K Ctrl2cap 上,WDM 篩選驅動程式會在鍵盤類別裝置上方的鍵盤類別裝置堆疊中分層。 這與 Win2K DDK 的 kbfiltr 範例形成對比,該範例會在 i8042 連接埠裝置與鍵盤類別裝置之間分層。 我選擇在鍵盤類別裝置之上分層,原因如下:

  • 這表示在 NT 4 和 Win2K 版本之間共用 Ctrl2cap IRP_MJ_READ 攔截和操作程式碼。
  • 我不需要提供 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
  • "Examining the Windows NT File System," By Mark Russinovich, Dr.Dobb's Journal,1997 年 2 月
  • 隨附的檔案系統篩選驅動程式,Filemon

Download下載 Ctrl2Cap(48 KB)

執行於:

  • 用戶端:Windows Vista 和更新版本。
  • 伺服器:Windows Server 2008 和更新版本。