다음을 통해 공유


Ctrl2Cap v2.0

Mark Russinovich 작성

게시일: 2006년 11월 1일

DownloadCtrl2Cap 다운로드(48 KB)

소개

Ctrl2cap은 Caps-Lock 문자를 컨트롤 문자로 변환하기 위해 시스템의 키보드 클래스 드라이버를 필터링하는 커널 모드 디바이스 드라이버입니다. UNIX에서 NT로 마이그레이션한 사람들은 Caps-Lock 키가 표준 PC 키보드에 있는 컨트롤 키의 배치 상황에 익숙하므로 이와 같은 유틸리티는 원활한 편집 환경을 위해 꼭 필요합니다.

설치 및 사용

Ctrl2cap 파일의 압축을 푼 디렉터리에서 "ctrl2cap /install" 명령을 실행하여 Ctrl2cap을 설치합니다. 제거하려면 "ctrl2cap /uninstall"을 입력합니다.

Ctrl2cap의 작동 방식

NT 4에서는 Ctrlcap이 실제로 매우 사소한 드라이버입니다. 키보드 읽기 요청을 catch하도록 키보드 클래스 드라이버에 연결하기만 하면 됩니다. 각 요청에 대해 I/O 완료 콜백을 게시하며, 이 시점에서 반환되는 스캔코드를 검토합니다. Caps-Lock이 발생하는 경우 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 작성, Dr. Dobb's Journal, 1997년 2월
  • 함께 제공되는 파일 시스템 필터 드라이버인 Filemon

DownloadCtrl2Cap 다운로드(48 KB)

다음에서 실행:

  • 클라이언트: Windows Vista 이상.
  • 서버: Windows Server 2008 이상.