Miki / Спасибо за написаную статью, но честно говоря из написаного выше я мало что понял. Естественно что для понимания даного кода нужно немало прочитать. Нада на уровне регистров понимать как работает ОС Windows, например чтоб передать число на какой то порт, сначала записать его в регистр al, и только после этого можна передать его содержимое в порт. Где эту информацию брать, сколько времени на это уйдет - думаю очень много. Хотелось бы примеров "более высокого уровня интеграции".Читал что есть модель драйвера WDM, а сейчас уже и WDF. Например, раньше было очень сложно писать пользовательские Windows приложения. Нада было знать очень много кода, перелопатить API функции. Сейчас ( из того немногого что я знаю) в C# создавать приложения буквально играясь в конструктора в визуальном режиме ( заполняем окно менюшками, кнопками, тексбоксами и определяем для них обработчики). Так у меня вышло написать простейший интернет браузер буквально за 5 минут, приэтом не сильно ламая голову.
Надеюсь что в мире програмирование есть подобная ситуация. Особенно после выхода Visual Studio 2012. Мало информации про WDF/ Надеюсь что это такая же "револючия" (как C#), которая поможет создавать драйвера не вникая (сильно в низкоуровневое програмирование). Лично мне интересно и низкоуровневое програмирование так как щитаю это проффесионализмом, но хотелось бы на пути начального изучения, начать с высокоуровневого програмирование - отдельно понять что как работает, глянуть на драйвер свысока, потом набравсь опыта понять как работает конкретная функция и далее уже разобрав низкоуровневые методы ее реализации научиться писать ассемблерные вставки в код драйвера при необходимости или когда это требуется.
Сейчас же хотелось бы (был бы очень рад) увидеть код драйвера WDF. Понять что это за "зверь", понять его структуру. Ожидаю од него что это будет какой то общий шаблон драйвера с возможностью его наполнять как стандартными функциями так и собственными - игра в "конструктор".
Хотелось бы чтобы эта тема помогла - многих именно заинтересовать в написании драйверов, показать что это не очень сильно сложно, а при прикладании постепенно усилий можна что-то научиться.
При прочтении вашой статьи - как я уже казал я почти ничего не понял - переписываем какието переменные из одного регистра в другой, выполняем функции, все очень для начального уровня сложно. Естественно если человек допустим учиться на прграмиста и постепенно с обяснеиями обучает все на уровне електроники, то может ему такой пример и легок.
Мне например более наглядным был пример драйвера (на сайте хабрахабр) который выдает сообщение в режиме ядра (Hell World - при запуске драйвера, и Gydbye - при его завершении. Конешно понимаю что никакой практической пользы от него нету, но все же это просто - можна самому с первого раза попробовать, это увлекательно, вызывает интерес к изучению.
Итак заключение моей мысли. Что лично вызвало у меня интерес к написанию драйверов. Не секрет что компютеры проникают у все сферы деятельности. Все больше выпускается так званых умных устройств на микроконтроллерах. Хотелось бы научится ими управлять с помощью ПК.
Какую мне бы хотелось увидеть здесь статью. Пример простейшого регулятора напряжения на МК. который бы управлял минидвигателем или освещением. Устройство подключается через любой порт ( что бы пороще было реализовать). У нас есть драйвер и пользовательское приложение. В пользовательском приложении допустим есть кнопки включить , выключить, и регулировка оборотов с помощью ползунка или чего то подобного. Хотелось бы это увидеть на примере драйвера WDF на основе C# ( или что то подобное).
Вернуться к обсуждению:
Зачем нужен драйвер и как написать простейший драйвер Программирование драйверов