жче наводиться таблиця, в якій описано використовуване в драйвері зіставлення клавіш. p align="justify"> Таблиця відповідності цифрових клавіш символам алфавіту  
 Додаткова клавішаАссоціірованние символи-RusLat  +  Зміна раскладкіСмена розкладки  2  А Б В гa BC  3  Д Е Ж ЗD EF  4  І Й К ЛG HI  5  М Н О Пj KL  6  Р С Т уm NO  7  Ф Х Ц ЧP QRS  8  Ш Щ Комерсант ИT UV  9  Ь Е Ю ЯW XYZ  0  Підтвердження вибору символу 
  Таким чином, весь алгоритм перетворень, вироблених в реалізованому драйвері-фільтрі, виглядає наступним чином: 
 . Аналіз поля, що відповідає за статус драйвера: включений/виключений. Якщо включений - п.2, інакше - п. 4; 
 . Цикл по всіх IRP-пакетів, що приходять з клавіатури; 
 . Для кожного IRP-пакета: 
  .1. Встановити змінну, визначальну, чи є пакет пакетом для виводу в TRUE; 
  .2. Визначити скан-код клавіші, клавіші; 
				
				
				
				
			  .3. Перевірити, натиснуто чи символ додаткової клавіатури, якщо так - перейти до п. 3.4., інакше - до п. 3.6.; 
  .4. Встановити змінну, визначальну, чи є пакет пакетом для виводу в FALSE; 
  .5. Якщо кнопка була віджата - оновити статус: 
  .5.1. Якщо скан-код не змінився - перейти до п. 3.5.2., інакше - до п. 3.5.3.; 
  .5.2. Збільшити лічильник натискань на 1; 
  .5.3. Якщо кнопка була натиснута: setted: = TRUE, перетворити вибраний код в букву, інакше п. 3.5.4.; 
  .5.4. Якщо кнопка була відпущена: setted: = TRUE, devExt-> Working: = FALSE, перетворити вибраний код в букву, інакше п.3.5.5 ; 
  .5.5. Якщо скан код натиснутої клавіші дорівнює 0x78, то змінити поле, що відповідає за використовуваний мову, інакше п. 3.5.6.;  p> 
 .5.6. Якщо кнопка була віджата - проініціалізувати структури новими значення...