justify"> Потім: ax, 11931
out 42h, alal, ah
out 42h, al
На першому кроці курсової роботи необхідно змінити програму так, щоб вона видавала інші музичні звуки (у кожного по варіанту).
Найчастіше у завданнях потрібно задавати різні тривалості. Для цього зручно використовувати процедуру DO_DELAY, передавши в неї побічно певний параметр "час звучання". p align="justify"> Щоб було зручно налагоджувати драйвер, існують різні засоби. Найпростіше - здійснювати вивід необхідної інформації в спеціальне вікно утиліти Debug View. Попередньо ця програма запускається, налаштовується на перехоплення повідомлень з рівня ядра. Для виведення в програмі викликається функція DbgPrint, що має один параметр - виведену рядок. Після запуску драйвера у вікні Debug View відображається весь висновок. p align="justify"> Існують різні способи установки драйвера в ядро. Так як наш драйвер, взагалі-то, системі не потрібен (він не керує ніяким пристроєм), то ми будемо тимчасово підключати драйвер до системи, а потім його видаляти. p align="justify"> Для цього необхідно створити програму, яка буде запускати драйвер. Яким чином? Драйвер - це служба рівня ядра. Тому додаток буде використовувати SCM - Диспетчер управління службами (Service Control Manager), який входить до складу Windows і працює на рівні користувача. p align="justify"> Таким чином, необхідно побудувати рішення з двох проектів: консольний додаток і драйвер.
Для розробки драйверів на С потрібно попередньо:
проинсталлировать DDK,
встановити змінну середовища WNETBASE (значення - шлях до DDK, наприклад, e: winddk 3790.1830).
Проект з драйвером повинен бути типу MakeFile.
Зробити налаштування проекту за допомогою Application Settings і в полі Build Command Line записати рядок-WNETXP chk. -CeZ
що означає виклик спеціального скрипта для зв'язку VC з DDK
У поточній папці проекту повинні бути присутніми файли:, makefile, ddkbuild.cmd (скрипт), вихідний файл драйвера. c
Після побудови проекту драйвер повинен мати розширення. sys.
Додаток запускає драйвер beeper.sys, тобто прописує його в реєстрі, і запускає в роботу. Потім по закінченні видаляє з реєстру. p align="justify"> Щоб додаток могло запустити драйвер, після побудови рішення, яке складається з двох проектів - програми та драйвера, потрібно помістити здійсненний файл програми і драйвер в одну папку, а потім запустити програму.
Драйвери дуже важко налагоджувати. При помилках у роботі ОС найчастіше зависає, і потрібне перезавантаження. А для нашого драйвера після перезавантаження ще й необхідно видалити службу beeper06 з реєстру за допомогою regedit (HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Ser...