в роботі системи виявлено не було. br/>
5. Висновок
При виконанні курсового проекту була пророблена наступна робота:
В· Вивчено структуру драйверів моделі WDM і WDF;
В· Вивчено стек пристрої, шлях запиту від програми через стек пристрої;
В· Визначено місце розроблюваного драйвера в стеку пристрої та обрана структура програмного забезпечення;
В· Вивчено механізм вбудовування драйвера-фільтра в стек драйверів;
В· Розроблено функціональний механізм зіставлення деякої цифровій клавіші на клавіатурі набору букв заданого алфавіту;
В· Розроблено програмне забезпечення, яке задовольняє вимогам технічного завдання;
В· Проведено тестування, яке підтвердило працездатність і надійність розробленого програмного забезпечення.
Програми
Додаток A
Конфігурації фізичних тестових машин:
1. Intel Atom N450 (1,66 ГГц), 1 Гб ОЗУ, ОС Windows 7 Професійна SP1
2. Intel Core 2 Duo (2.33 ГГц), 3 Гб ОЗУ, ОС Windows Vista Home Premium SP2
. Intel Pentium 3 (666 МГц), 512 Мб ОЗУ, ОС Windows XP Professional SP3
. Intel Core 2 Duo (1.8 ГГц), 3 Гб ОЗУ, ОС Windows XP Professional SP3
Додаток Б
Лістинг вихідного коду. Частковий драйвера._ServiceCallback
(PDEVICE_OBJECT DeviceObject, PKEYBOARD_INPUT_DATA InputDataStart, PKEYBOARD_INPUT_DATA InputDataEnd, OUT PULONG InputDataConsumed
)
{
BOOLEAN Setted = FALSE; _EXTENSION devExt; hDevice; _INPUT_DATA cur; _INPUT_DATA k; = WdfWdmDeviceGetWdfDeviceHandle (DeviceObject); = FilterGetData (hDevice);
// Аналіз поля, що відповідає за статус драйвера: включений/виключений. Якщо// включений - п.2, інакше - п. 4;
if (devExt-> Running)
{
// Цикл по всіх IRP-пакетів, що приходять з клавіатури
for (cur = InputDataStart, k = InputDataStart; cur
{
// Для кожного IRP-пакета
DbgPrint ("Scan code:% d", InputDataStart-> MakeCode);
// Встановити змінну, визначальну, чи є паке...