Тема: Драйвер - як його написати та і що це?

Драйвер - як його написати та і що це?

Напишіть будьласка, як написати свого драйвера? Який компілятор потрібний? Як це взагалі робиться, як драйвера пишуть?

2 Востаннє редагувалося raxp (13.02.2016 22:40:48)

Re: Драйвер - як його написати та і що це?

У рамках однієї теми, ось так, з наскоку, без розуміння вами об'єктної моделі ядра і архітектури цільового заліза? :)

Може спочатку ознайомитесь з літературою та WinDDK:

3 Востаннє редагувалося Chemist-i (14.02.2016 11:11:29)

Re: Драйвер - як його написати та і що це?

raxp, цікаво, що ТС про віндовс нічого не казав, а Ви йому все про вінду, хіба під інші системи драйвери не потрібні?

Подякували: Дмитро-Чебурашка1

4

Re: Драйвер - як його написати та і що це?

Це тому, що у TC всi теми навколо Windows, тому чутка телепатії + чутка статистики = соцiальна iнженерiя )

Подякували: Дмитро-Чебурашка1

5

Re: Драйвер - як його написати та і що це?

як написати свого драйвера?

Драйвер пiд яке завдання? Конкретизуй.

Подякували: Дмитро-Чебурашка1

6

Re: Драйвер - як його написати та і що це?

Спочатку потрібно розібратися як функціонує вінда, та що таке х86.

Подякували: Дмитро-Чебурашка1

Re: Драйвер - як його написати та і що це?

Спасибі величезне!! Так приємно отримувати відповіді!

Re: Драйвер - як його написати та і що це?

Повний залік книги Солдатова! Читається легко, зрозуміло, ну аж прям як художньяа книга!

 Використання також повноцінна кльова книга, в неї дуже дуже багато усього!
Але читається вона порівняно важко, я аж не можу. Я почав читати її першої, і де то на семидесятоїиі

сторінці забивши на це .. Ну втомився я, і зрозумів я що її якщо читати то потрібно читати раз, потім другий, третій,
коли вже краще зрозуміло терміни, я зрозумів, що ненавмисно пропускаю 2/3 повз через тяжкость матеріалу. Голова обважніла.

Ще мінус, що немає її у вигляді іншому, крім діджей. Ну не люблю я його!
Відношуся як до крайнього збочення. І з ним же не можна працювати!
Я взагалі маю свої методи, як саме мені легко і зручно. Я в таких випадках коли книга важка відкриваю
її у нотепаді, звичнє, відмінне середовище. Будь-який термін я ураз виділяю по - усьому тексту
вмить знаходжу його по - всіх згадках, і так само легко і в інших поруч відкритих
документах також. Повірте, як це зручно! Так в рази легше вчити щось, що б там не було.
А це, ось з діджей вже так не попрацюєш! Ну добре..

Re: Драйвер - як його написати та і що це?

До речі, найповніший залік raxp!!!   Моя вдячність!!

10 Востаннє редагувалося Дмитро-Чебурашка (21.02.2016 18:41:38)

Re: Драйвер - як його написати та і що це?

Доброго дня!  Я бажаю таки скомпилювати драйвер, але не зовсім розумію як.

У книзі Солдатова написанє "Компиляция и сборка драйвера утилитой Build пакета DDK
В том варианте, как поставляется пакет DDK, весьма просто использовать компилятор и редактор связей этого пакета. Для этого следует выбрать в меню запуска программ Пуск — Программы — ... запуск соответствующей среды (по ряду причин наиболее предпочтителен выбор среды Window 2000, checked или free), в результате чего появится консольное окно, для которого уже (автоматически) будут должным образом установлены переменные окружения. В том случае, если у разработчика имеются файлы makefile, sources (описывающие процесс сборки данного конкретного драйвера), а пакет DDK установлен корректно, то необходимо лишь перейти в рабочую директорию проекта командой cd (для драйвера, рассматриваемого в следующей главе, это — директория C:\Example) и ввести команду build (см. рисунок 2.1). Разумеется, что в случае ошибок компиляции или сборки вывод будет содержать и их диагностику.

" .   Так от в мене в меню Пуск-Все программі нємае ніякого значка або що, щоб воно чімось нагадувало утилитой Build пакета DDK.

Якщо я щось тільки чогось не плутаю, або ж не бачу прям перед собою.

Я власне і не пам'ятаю вже толком що я там собі за програми ставив.

Папка звється C:\DDKs-2600.1106-3790-6000-7600.1-8.0-8.1.7z і я перетягнув її у корневу директорію.
Хвилин двадцать (навить більше) я змагався написати БАТ-файла, шось писав писав у нотепаді.
Взагалі не розумію - які програми запускати в ньому першими, якщо їх запускати не одну,
скільки і в якій послідовності, може передавати ще й якісь параметри,, або що?

Бо в мене якось ще в голові не вляглося, все це, яки потрібні драйвєрові функциї та структури,
які допоміжні програми бувають та й усе. Я ще погано роздививсь і той самий DDKs, я ще в ньому
блукаю періодично щось зустрічаючи цікаве, і ще нє розгледів його до ладу.

Та і чімось якось скомпилювати, хоч чім.

Ну і може я щось погано почитав, звичайно, тоді тикнить
менє будь ласка ,,носом,,. Я ж міг пропустити, не помітити, ненадати значення взагалі...

11 Востаннє редагувалося Дмитро-Чебурашка (21.02.2016 20:06:00)

Re: Драйвер - як його написати та і що це?

А ще я додатково завантажив ось нещодавна GRMWDK_EN_7600_1.ISO .

Як бачітє, це файл в не зовсім звичайному розширенні, яке я коли і стикався то забув.

І а ось що ж пише майкрософт про оцей свій продукт, електронний перекладач - Цей випуск набору Windows Driver Kit доступний тільки в якості зображення для DVD ISO. Він рекомендується завантажити образ диска, а потім записати DVD. Ваша машина повинна бути встановлена горіння DVD програмне забезпечення.

Аось на яку цікавинку я натрапив на сайті -

Що таке розширення iso, чим його можна відкрити

На зорі комп'ютерної ери не існувало поняття «файл», не потрібно було вигадувати для нього назву і привласнювати розширення. Сьогодні абсолютно інша історія. Файлові системи вимагають чіткої впорядкованості, строгості зберігання інформації. Тому у кожного файлу є свій ідентифікатор, за яким його можна відкрити тією чи іншою програмою.


В ієрархічній структурі сучасної операційної системи все знаходиться строго на своїх місцях. Якщо користувач виявляє файл з розширенням * .exe, то розуміє, що це програма або утиліта. * .doc потрібно відкривати в Word, а для * .html розроблені браузери і спеціальні редактори. Однак іноді трапляються й інші розширення, з якими не так просто розібратися. І одним з таких порівняно рідкісних гостей на ПК є * .iso

Рідкісний гість * .iso

Відносно недавно вінчестери ПК були настільки малі, що рідкісний користувач зберігав на них великі файли. Швидше, це було скупчення музики, книг і / або картинок. Як тільки великі жорсткі диски стали доступними, на них почали записувати фільми та ігри. Останні зазвичай йшли в форматі * .iso, * .mdf або * .vcd і представляли собою «образи» звичайних CD або DVD дисків.
В 90-х роках минулого століття ще не думали про те, що на вінчестерах зможуть уміститися цілі колекції фільмів або ігор.


Робилося це для того, щоб зберегти на вінчестері вподобану гру або програму, що не запускалася без підтримки CD-диска. Тоді за допомогою спеціальних програм створювався «образ» і диск можна було спокійно повернути одному. Саме тоді формат * .iso здобув популярність. Однак для деяких людей, що зіткнулися з ним вперше, було складно відкрити цей дивний файл.

Сезам - відкрийся!

Програм, що розуміють формат * .iso, кілька десятків. Але всі вони працюють за схожим принципом, тому досить розглянути найпоширеніші з них, щоб отримати повну інформацію:
Принцип дії програми-емулятора полягає в тому, щоб імітувати роботу звичайного CD / DVD-ROM`a на програмному рівні.


- DAEMON tools - класична програма, відома ще з двохтисячного року, коли вийшла перша її версія. Здатна відкривати безліч форматів «образів» дисків, а також створювати їх. Проект розвивається донині. Остання версія 2.2. Тип ліцензії: Free (для особистого користування)

- Alcohol 120% - інша програма - емулятор дисків. Також відкриває багато форматів «образів» і створює їх. Проект в розвитку. Остання версія 2.0.2.5830. Тип ліцензії: Shareware.

- UltraISO - менш відома програма для тих же цілей. З її допомогою можна відкривати до 30 форматів «образів», створювати їх і робити запис на CD. Проект активно розвивається. Остання версія 9.6.1.3016. Тип ліцензії: Shareware. Є безкоштовна версія, але вона працює з «образами» не більше 300 Мб.

Розмір «образів» може бути різним, але найпоширенішими варіантами є 700 Мб і 1,4 Гб. З поширенням DVD-дисків з'явилися «образи» на 4 Гб і більше. Однак якщо ви знайомі з однією з трьох перерахованих вище програм, проблем в роботі з * .iso не буде.


%%%%%%%%%%%%

Я ж таки не можу рішитися - яку ж прогу мені завантажити, як же із цім розширенням бути і працювати. Як же ш воно краще.

Точніше кажучи я не зрозумів - треба мені одна з цих прог або не треба і як мені бути! ??


А є якийсь алгоритм, щоб  перетворити файли образу в звичайний вид програми?

Подякували: leofun011

12

Re: Драйвер - як його написати та і що це?

Дмитро-Чебурашка
Зараз ISO уміє будь-який архіватор відкривати як архів.

Подякували: Дмитро-Чебурашка1

13

Re: Драйвер - як його написати та і що це?

...в total навiть плагiн.

Подякували: Дмитро-Чебурашка1

Re: Драйвер - як його написати та і що це?

NTSTATUS Create_File_IRPprocessing(IN PDEVICE_OBJECT fdo,IN PIRP Irp)
{
    PIO_STACK_LOCATION IrpStack = IoGetCurrentIrpStackLocation(Irp);
    // Задаем печать отладочных сообщений - если сборка отладочная
    #if DBG
    DbgPrint("-Example- Create File is %ws",
        &(IrpStack->FileObject->FileName.Buffer));
    #endif
return CompleteIrp(Irp,STATUS_SUCCESS,0); // Успешное завершение
}


Ось це ось ділянка коду. А саме IrpStack->FileObject->FileName.Buffer, ось що це? Взагалі ніяк не видно, що це!
Шукаяю як завгодно в гуглі -нема, тоб то е різні коди у сховищах, але ніяк не пояснення що це!

У коді з'являється прямо тут і так, і тільки один раз. Тобто ж ніяких передумов що це за File Object не є і що це взагалі за
FileName.Buffer?

А тут помилка така ось warning 6067 : Parameter '2' in call to 'DbgPrint' must be the address of the string
             File path: c:\example\init.cpp
             Function: Create_File_IRPprocessing
             Line: 243
--------------------------------------------------------------------------------

1    яю/
201     

238     

--------------------------------------------------------------------------------
PREfast analysis path begins 


243     


--------------------------------------------------------------------------------
244     

248     
448     
648     


--------------------------------------------------------------------------------

Error
The following error occurred attempting to load the file, "":




--------------------------------------------------------------------------------
If the file can be located in another folder, enter the path name of the folder here and click the Retry button:


   
     


--------------------------------------------------------------------------------

Unknown line number
PREfast was unable to determine the line number for this warning.


Model File Error
A probable error was encountered in the model file. A few source file errors also can cause such errors.

Ах то це Варнінг .. Ну а хоча б! Гаразд завтра розберемося...   

Ось я хочу з консолі, яка ось тут з'являється при коіпіляції, їз неї виводити все у текстовий документ !! Так у ломи переписувати ..
Буде і переводити зручніше, і показувати!

15 Востаннє редагувалося Дмитро-Чебурашка (27.02.2016 19:58:39)

Re: Драйвер - як його написати та і що це?

Доброго вечора всім!! Що я там писав раніше? Загалом дякую всім!

Я в пуск знаходжу ярлик віндовс драйвер кит --буилд энвіронмєнт --віндХР....


Коротше запускаю.... Список помилок. Ось я не знаю, код же з книгі. Може код нє такий, може я нє такий,чі може ще там якісь налаштування особливі потрібні, я не розумію...

Будь ласка пояснить усе!! Бо я оцє не зміркую зовсім...

Post's attachments

buildchk_wxp_x86.log 3.57 kb, 380 downloads since 2016-02-26 

16 Востаннє редагувалося Дмитро-Чебурашка (27.02.2016 20:37:13)

Re: Драйвер - як його написати та і що це?

Лог приєдную.        А ось і файл коду. Я хоч і не думаю що справа в ньому, проте ж викладу його. Він надпотужно розбавлений різною фігнєю, коментарями, їх можна не читати. Навить можна прибрати.. Алє код видно.

Post's attachments

example.7z 14.84 kb, 342 downloads since 2016-02-27 

17 Востаннє редагувалося Дмитро-Чебурашка (27.02.2016 20:48:12)

Re: Драйвер - як його написати та і що це?

Розархіватор 7z.  Гадки не маю, чі потрібен він в темі?

Post's attachments

7-Zip.zip 1.63 mb, 381 downloads since 2016-02-27 

18 Востаннє редагувалося Дмитро-Чебурашка (02.03.2016 18:28:14)

Re: Драйвер - як його написати та і що це?

Будь ласка подивіться!
Я не знаю, як правильно використовувати extern "C"?

Ні ні! Спочатку напишіть мені будь ласка як в нотепаді видалити всі коментарі одразу з файлу С ++, одразу всі!
Ну там хитрий і правильний зручний метод ...

Re: Драйвер - як його написати та і що це?

Хай йому!!  Щоб не гаяти часу я і руками щас видалю однак жє питання не зіймаю!

20

Re: Драйвер - як його написати та і що це?

У вас в init.cpp не реалізована функція Close_HandleIRPprocessing. Оголошення є, а тіла функції нема.

Подякували: Дмитро-Чебурашка1