в каком формате драйвера

Драйвер устройства и с чем его едят

Что такое «драйвер»

в каком формате драйвера. Смотреть фото в каком формате драйвера. Смотреть картинку в каком формате драйвера. Картинка про в каком формате драйвера. Фото в каком формате драйвера

Как уважаемый хабрапользователь наверняка знает, «драйвер устройства» — это компьютерная программа управляющая строго определенным типом устройства, подключенным к или входящим в состав любого настольного или переносного компьютера.

Основная задача любого драйвера – это предоставление софтового интерфейса для управления устройством, с помощью которого операционная система и другие компьютерные программы получают доступ к функциям данного устройства, «не зная» как конкретно оно используется и работает.

Обычно драйвер общается с устройством через шину или коммуникационную подсистему, к которой подключено непосредственное устройство. Когда программа вызывает процедуру (очередность операций) драйвера – он направляет команды на само устройство. Как только устройство выполнило процедуру («рутину»), данные посылаются обратно в драйвер и уже оттуда в ОС.

Любой драйвер является зависимым от самого устройства и специфичен для каждой операционной системы. Обычно драйверы предоставляют схему прерывания для обработки асинхронных процедур в интерфейсе, зависимом от времени ее исполнения.

Любая операционная система обладает «картой устройств» (которую мы видим в диспетчере устройств), для каждого из которых необходим специфический драйвер. Исключения составляют лишь центральный процессор и оперативная память, которой управляет непосредственно ОС. Для всего остального нужен драйвер, который переводит команды операционной системы в последовательность прерываний – пресловутый «двоичный код».

Как работает драйвер и для чего он нужен?

Основное назначение драйвера – это упрощение процесса программирования работы с устройством.

Он служит «переводчиком» между хардовым (железным) интерфейсом и приложениями или операционными системами, которые их используют. Разработчики могут писать, с помощью драйверов, высокоуровневые приложения и программы не вдаваясь в подробности низкоуровневого функционала каждого из необходимых устройств в отдельности.

Как уже упоминалось, драйвер специфичен для каждого устройства. Он «понимает» все операции, которые устройство может выполнять, а также протокол, с помощью которого происходит взаимодействие между софтовой и железной частью. И, естественно, управляется операционной системой, в которой выполняет конкретной приложение либо отдельная функция самой ОС («печать с помощью принтера»).

Если вы хотите отформатировать жесткий диск, то, упрощенно, этот процесс выглядит следующим образом и имеет определенную последовательность: (1) сначала ОС отправляет команду в драйвер устройства используя команду, которую понимает и драйвер, и операционная система. (2) После этого драйвер конкретного устройства переводит команду в формат, который понимает уже только устройство. (3) Жесткий диск форматирует себя, возвращает результат драйверу, который уже впоследствии переводит эту команду на «язык» операционной системы и выдает результат её пользователю (4).

Как создается драйвер устройства

в каком формате драйвера. Смотреть фото в каком формате драйвера. Смотреть картинку в каком формате драйвера. Картинка про в каком формате драйвера. Фото в каком формате драйвера

Для каждого устройства существует свой строгий порядок выполнения команд, называемой «инструкцией». Не зная инструкцию к устройству, невозможно написать для него драйвер, так как низкоуровневые машинные команды являются двоичным кодом (прерываниями) которые на выходе отправляют в драйвер результат, полученный в ходе выполнения этой самой инструкции.

При создании драйвера для Линукса, вам необходимо знать не только тип шины и ее адрес, но и схематику самого устройства, а также весь набор электрических прерываний, в ходе исполнения которых устройство отдает результат драйверу.

Написание любого драйвера начинается с его «скелета» — то есть самых основных команд вроде «включения/выключения» и заканчивая специфическими для данного устройства параметрами.

И чем драйвер не является

Часто драйвер устройства сравнивается с другими программами, выполняющими роль «посредника» между софтом и/или железом. Для того, чтобы расставить точки над «i», уточняем:

Ну и на правах рекламы – вы всегда знаете, где скачать новейшие драйвера для любых устройств под ОС Windows.

Источник

Как распаковать драйвер?

Для принудительной установки драйвера необходимо предварительно распаковать драйвер. Большинство драйверов являются обыкновенными архивами ZIP или RAR. Думаю, у любого пользователя распаковка таких драйверов не оставит трудностей. Главное, что нужно запомнить – драйвер лучше всего распаковывать в папку, созданную в корне диска. Иначе большое вложение папок и длинные имена архивов, могут вызвать трудности при установке драйвера после распаковки. Саму папку, куда распаковываются файлы лучше называть как можно короче, вполне достаточного названия из одного-двух символов. В последующем, при установке, вам проще будет запомнить имя нужной вам папки с драйверами.

Распаковка драйверов с расширением *.exe или *.msi

Довольно часто встречаются установочные драйверы с расширением *.exe или *.msi, особенно, если файл скачан с официального сайта производителя. И такие файлы не поддаются распаковке обычными архиваторами. Как же их распаковать?

Распаковка драйверов с расширением *.cab

Иногда после распаковки драйвера мы получаем папку, внутри которой нужные нам файлы находятся в архиве cab (обычно data1.cab и data1.cab). Именно внутри этих архивов спрятаны файлы с расширением *.inf, необходимые нам для принудительной установки драйвера.

в каком формате драйвера. Смотреть фото в каком формате драйвера. Смотреть картинку в каком формате драйвера. Картинка про в каком формате драйвера. Фото в каком формате драйвера

Как видно из рисунка, среди немногих файлов имеются те самые файлы data1.cab и data1.cab. Что касается именно извлечения драйверов, то никакой обычный распаковщик здесь не поможет. InstallShield CAB File Viewer – с помощью этой небольшой, но очень полезной утилиты распаковать cab-файл не составит никакого труда. Открыв в программе нужный нам файл (достаточно указать на файл data1.hdr) и перед нами предстанет дерево папок и файлов, содержащиеся внутри архива:

в каком формате драйвера. Смотреть фото в каком формате драйвера. Смотреть картинку в каком формате драйвера. Картинка про в каком формате драйвера. Фото в каком формате драйвера
(нажмите для увеличения)

Отсюда мы сможем извлечь необходимый нам файл. Недостатком такого распаковщика является то, что нельзя распаковать папку целиком, извлечь можно только один файл. То есть, для полного извлечения придется распаковывать каждый файл по очереди.

Когда ничего не помогает

Редко, но все же случается так, что никакой способ распаковки драйвера не помогает. Тут можно попробовать просто запустить установочный файл драйвера, дождаться окончания установки, но не закрывать диалоговое окно программы. И зайти во временные папки системы и поискать там папку с распакованным драйвером. Для windows 7 и Vista временная распаковка будет происходит в папку C:/Users/ИМЯ/AppData/Local/Temp/. Для Windows XP – это будет C:/Documents and Settings/ИМЯ/Local Settings/Temp. Папку с драйвером ищите по дате создания.

Если у вас есть свой надежный и проверенный способ распаковки драйверов, то ждем ваших комментариев.

Источник

Все о драйверах в Windows XP

в каком формате драйвера. Смотреть фото в каком формате драйвера. Смотреть картинку в каком формате драйвера. Картинка про в каком формате драйвера. Фото в каком формате драйвера

Каждый пользователь компьютера рано или поздно столкнется с вопросом поиска, установки и удаления драйверов. Будет это вызвано покупкой нового устройства, переустановкой операционной системы, желанием повысить быстродействие или улучшить другие характеристики системы – не суть важно. В этой статье я хочу предоставить некоторые теоретические сведения о драйверах, а также обсудить некоторые тонкости и приемы в обращении с ними

Что это такое

Драйвер – набор служебных программ, позволяющих операционной системе (ОС) работать с тем или иным устройством компьютера. Его задача – обрабатывать запросы, поступающие от прикладных и системных программ, переводить их на язык, понятный физическому устройству, управлять процессами его инициализации, настройки параметров, обмена данными, переключением из одного состояния в другое и т.п. Драйвер позволяет операционной системе взаимодействовать с конкретным устройством через общий интерфейс, не учитывающий особенности данного устройства. Другими словами, драйвер транслирует запросы высокого уровня в запросы низкоуровневого машинного языка, непосредственно обращаясь к аппаратным ресурсам компьютера.

Не для каждого устройства требуется драйвер. Если существует строгий стандарт, описывающий набор команд, последовательность и временные параметры операций и другие особенности работы с данным классом устройств, драйвер может и не понадобиться, так как операционная система уже имеет в своем составе все необходимые для этого процедуры. В принципе, это можно назвать и встроенным драйвером. Примеры – клавиатура, таймер, коммуникационные порты, модем (внешний). Но если устройство может быть заменено на другое, отличное по своим функциональным возможностям, то драйвер для него нужно будет устанавливать обязательно.

Драйвер может содержаться и в дистрибутиве операционной системы. Тогда вопрос его поиска отпадает сам по себе. Однако устройства, появившиеся после официального выхода ОС, потребуют установки отдельного драйвера, разработанного производителем. Кроме того, набор драйверов в комплекте с ОС невелик и охватывает только небольшую часть наиболее распространенных или полностью стандартных устройств

Драйверы и windows

Следует также помнить, что операционные системы windows 98 se и windows 2000, равно как и их потомки, поддерживают новую модель драйверов, получившую название wdm (windows driver model). Это – попытка реализовать полную поддержку plug&play и acpi, то есть дать возможность загружать и выгружать драйверы «на ходу», без перезагрузки системы, подключать их в виде фильтров-расширений к стандартным драйверам microsoft, более гибко управлять энергосбережением и конфигурацией устройств и т.п. wdm-драйверы хранятся в каталоге system32/drivers. В частности, интерфейсы нового поколения usb и ieee-1394 (firewire) работают только под управлением wdm-драйверов.

«Референс» или «фирменные»?

Как правило, функциональность каждого устройства компьютера определяется его контроллерами. Контроллеры имеют вид интегральных микросхем, установленных на печатной плате. Взаимодействие устройства с остальными компонентами системы сводится к обмену данными и командами между контроллером устройства и центральным процессором (или другим контроллером, например, арбитром шины, контроллером dma и т.п.). Можно сказать, что драйвер – это программа, позволяющая процессору «общаться» с контроллером

Очень часто разработчики микросхем (так называемого чипсета) сами пишут драйверы для того устройства, которым будет управлять их контроллер. Обычно такие драйверы называют референсными («reference»). Они могут быть либо общедоступными и выкладываться в Интернет на сайте разработчика, либо предоставляться исключительно производителям оборудования на доработку и адаптацию. Очевидно, что в первом случае для устройства можно и нужно устанавливать референсные драйверы, которые обновляются гораздо чаще «фирменных» и содержат исправления ошибок и новые возможности. Однако при этом можно потерять доступ к некоторым функциям, специфичным для конкретного устройства.

«Фирменные» драйверы производителя оборудования могут быть изрядно устаревшими, но при этом учитывать какие-то особенности данного устройства, о которых не знают разработчики чипсета. В любом случае всегда имеет смысл попробовать сначала «референс»-драйвер (если он доступен для скачивания), а если он по какой-то причине не подойдет, вернуться к «фирменным».

Версии драйверов

Как и любое другое программное обеспечение, драйверы имеют свои версии. Формат версии свободный – каждый разработчик сам решает, сколько ему нужно цифр для нумерации и в какой последовательности они должны стоять. В некоторых случаях все-таки есть система: windows-драйверы для наиболее интересных с нашей точки зрения устройств вроде игровых видео- и звуковых карт, поддерживающих directx, нумеруются определенным образом. Первая цифра – номер версии операционной системы windows. 4 = win9x/winnt, 5 = win2000. Далее после точки идет версия directx. 12 = dx7, 13 = dx8. Последние цифры – номер версии самого драйвера. Например, представленный на скриншоте драйвер для видеокарт nvidia имеет версию 4.13.01.1241, что означает предназначен для win9x и directx8, его версия – 1241

Иногда производители сопровождают драйвер своим инсталлятором (setup.exe, install.exe и т.п.). Тогда увидеть файлы драйвера не представляется возможным. Поищите файл readme.txt, version.txt, release.txt или что-нибудь подобное, так как в них часто тоже указаны версии файлов или всего комплекта

Также стоит упомянуть о так называемых бета-драйверах. Разработчики чипсетов и устройств часто стараются стимулировать интерес к себе, выкладывая на своих сайтах экспериментальные драйверы. Другой известный прием – предоставление драйверов владельцам различных тематических Интернет-сайтов под видом украденных или случайно оставленных на внутренних корпоративных страницах (так называемые «leaked»-драйверы). Конечно, разработчики заранее открещиваются от них и не обещают технической поддержки в случае возникновения проблем, но, как мне кажется, они все равно анализируют поток писем от пользователей и тем самым экономят на процессе поиска сбоев и отладки

Кстати, проверяйте .cat-файлы, запуская их двойным щелчком мыши, так как они могут быть фиктивными (пустыми).

Как определить производителя и модель устройства

Конечно, лучше покупать комплектующие известных производителей, благо сегодня такая возможность есть. Тогда не будет возникать вопрос о том, какой драйвер нужно искать. Но иногда пользователь не имеет понятия о модели или даже производителе устройства – например, если компьютер не очень новый и собирал его кто-то другой. Перед тем, как начинать поиск, придется определить точное название устройства или его чипсета.

Все чипы обязательно имеют маркировку, где указано название производителя, модель, серия, версия и ревизия чипа, дата выпуска. Микросхемы чипсета обычно имеют самое сложную структуру, у них большой корпус и много контактов, поэтому они больше других чипов по размерам. По маркировке, пользуясь поисковиками http://www.google.com/, http://www.altavista.com/, http://www.yandex.ru/ и другими, можно достаточно быстро отыскать сайт производителя чипсета и «reference»-драйверы.

Производителя самого устройства найти будет легче. Во-первых, вся необходимая информация должна быть нанесена краской на печатной плате. Даже если вы не нашли названия, есть шанс определить его по fcc-номеру. Ищите строку «fcc id:», в которой будет указан регистрационный код, присвоенный изготовителю устройства. После этого нужно зайти на сайт fcc и ввести код в строку поиска.

Во-вторых, где-нибудь обязательно будет написана модель устройства, по которой в Интернет можно попытаться найти сайт производителя.

В-третьих, если устройство устанавливается в слот pci или agp, то с помощью утилит можно определить код производителя этого устройства или чипсета. Могу порекомендовать sandra, powerstrip. Принцип, положенный в основу идентификации, базируется на анализе информации, выдаваемой pci-устройством. Как минимум можно получить коды производителя (vendor id) и модели (device id), которые поддаются расшифровке с помощью таблиц. В частности, в таблице sandra содержится более 6 тыс. кодов различных устройств

Где взять драйвер

Конечно, можно не напрягаться и установить все драйверы прямо с компакт-диска, идущего в комплекте с устройством. Такое решение вполне оправданно, но только на первое время. Драйверы (особенно для внутренних устройств) имеют тенденцию часто обновляться, поэтому полезно иногда поискать в Интернет новые версии. Иначе велика вероятность столкнуться с несовместимостью устройства с новым программным обеспечением или другим комплектующими.

Если вы точно знаете доменное имя сайта производителя (или догадываетесь – www.производитель.com, www.производитель.com.tw), то можно начинать поиск. На титульной странице отыщите кнопку «download», «drivers», «support» или аналогичную. Далее предстоит выбрать из списка именно то устройство, которое у вас имеется. Вполне возможно, что вы увидите несколько устройств с совпадающими названиями, отличия которых будут заключаться только в суффиксах или даже номерах ревизий. Обращайте на это внимание, иначе драйвер может не подойти. Далее, по возможности скачивайте драйверы не только для той операционной системы, которая у вас установлена, но и для других ОС: во время инсталляции новой windows будет неприятно обнаружить факт отсутствия необходимого драйвера.

Если вам никак не удается найти нужный сайт, обращайтесь на специализированные драйверные сайты (http://www.windrivers.com/, http://www.driverhq.com/, http://www.drv.ru/ и т.д.). Скачивать оттуда непосредственно файлы драйвера можно только в одном случае: фирма-разработчик уже прекратила свое существование и ее сайта физически нет в Сети. Гораздо лучше воспользоваться поиском не драйвера, а сайта производителя или его страницы технической поддержки.

Как установить

Если в комплекте с драйвером есть свой инсталлятор, то лучше воспользоваться им. Для этого нужно после появления сообщения о найденном устройстве нажать «esc», загрузить windows без драйвера и запустить инсталлятор. Он скопирует все файлы драйвера в папку windowsinfother, где драйвер и будет найден после перезагрузки. Кроме того, будут установлены дополнительные программы, идущие в комплекте. Немаловажно также и то, что в большинстве случаев инсталлятор может корректно убрать драйвер, не оставив следов своего пребывания («Панель управления»/«Установка и удаление программ»).

Как удалить вручную

Источник

Алгоритм установки драйвера в Windows

Именно поэтому операционная система пытаемся всеми доступными ей методами обеспечить функционирование устройства в своей среде, для этого производится попытка установки для вновь подключаемого устройства соответствующего драйвера, дабы тем самым предоставить функции нового устройства для доступа программам пользовательского режима и коду режима ядра, ведь без этого самого пресловутого драйвера оборудование в системе работать попросту не сможет.
Я не случайно упомянул в определении логические устройства, поскольку существует отдельная категория драйверов, которые не занимаются обслуживанием аппаратного обеспечения, а интегрируются для расширения реализации (расширения, дополнения) функциональных особенностей различных модулей системы. Но кого сейчас удивишь установкой драйверов? Этот процесс настолько уже хорошо знаком всем пользователям ПК по многолетней практике, что некоторые, я уверен, могут делать это с закрытыми глазами 🙂 Но задумывались ли мы о деталях этого процесса, размышляли ли когда-нибудь над алгоритмом установки драйвера? Задавались ли вопросом, какие именно действия выполняет операционная система в момент подключения нового устройства и инсталляции драйверов?

Согласитесь, что с точки зрения пользователя процесс установки драйвера в Windows, в большинстве случаев, выглядит достаточно прозаично. В системном трее появляется привычный анимированный значок мастера установки, и система через некоторое время может выдать отчет об успешном, либо неудачном завершении процедуры инсталляции в системе драйвера нового устройства. Более того, зачастую мастер установки кроме этой самой иконки в трее вовсе не выдает никаких визуальных подтверждений о попытках инсталляции нового устройства, при этом «тихо» добавляя новое оборудование в список устройств и (в случае неудачи) маркируя его специальным значком в диспетчере устройств, предлагая пользователю в ручном режиме продолжить конфигурирование оборудования. Все эти внешние процессы, хорошо уже знакомые как Вам так и мне, в той или ином виде присутствуют во всех версиях операционных систем Windows практически с момента появления этой операционной системы, незначительно отличаясь между собой лишь в деталях. Они стали настолько знакомыми и привычными, что я даже никогда и не задумывался, а что же происходит «по ту сторону экрана», в недрах операционной системы, что скрывается под этой мнимой простотой? Как Вы увидите далее, установка драйвера Windows для физического либо логического устройства скрывает под собой довольно сложные и чрезвычайно интересные процессы. Алгоритм установки драйвера в Windows можно разбить на перечисленные ниже ключевые глобальные задачи:

Помимо основных задач, выполняемых в рамках алгоритма установки драйвера в Windows, неплохо было бы классифицировать и условия, по которым стартует процесс установки драйвера Windows:

Но что представляет из себя сам пакет драйвера? Ведь, как мы неоднократно видели, это целый набор файловом абсолютно различного, на первый взгляд, назначения. Без более углубленного обзора структуры инталляционного пакета установки драйвера нам будет сложно понять и сам алгоритм установки драйвера, поэтому приведем общие составляющие:

Источник

Драйвер — это просто

Многие считают что самому создать драйвер для Windows это что-то на грани фантастики. Но на самом деле это не так. Конечно, разработка драйвера для какого-то навороченного девайса бывает не простой задачей. Но ведь тоже самое можно сказать про создание сложных программ или игр. В разработке простого драйвера нет ничего сложного и я попытаюсь на примерах это показать.

Сперва нам нужно определится в чем мы же будем создавать наш первый драйвер. Поскольку материал ориентирован на новичков, то язык программирования был выбран один из простых, и это не Си или ассемблер, а бейсик. Будем использовать один из диалектов бейсика — PureBasic. Из коробки он не обучен создавать драйверы, но у него удачный набор файлов, используемых для компиляции и небольшое шаманство позволяет добавить эту возможность. Процесс компиляции состоит из нескольких этапов. Если кратко, то он происходит следующим образом: Сначала транслятор «перегоняет» basic-код в ассемблер, который отдается FASM’у (компилятор ассемблера), который создает объектный файл. Далее в дело вступает линкер polink, создающий исполняемый файл. Как компилятор ассемблера, так и линкер могут создавать драйверы и если немного изменить опции компиляции, то получим не исполняемый файл, типа EXE или DLL, а драйвер режима ядра (SYS).

Скачать немного модифицированную бесплатную демо версию PureBasic 4.61 x86 можно на файлопомойке, зеркало.
Если нужно создать драйвер для x64 системы, качайте эту версию, зеркало.

Дистрибутивы имеют небольшие размеры, около 3 МБ каждый. С помощью этой версии можно создавать только драйвера.
Скачиваем, распаковываем и запускаем, кликнув по файлу «PureBasic Portable». При этом запустится IDE и вылезет окошко с сообщением что это демо-версия и списком ограничений. Из него наиболее существенным является ограничение числа строк кода, равное 800, а для создания простых драйверов этого может хватить. Остальные ограничения в нашем случае, не существенны.

Окно IDE с загруженным кодом драйвера показано на скрине.

в каком формате драйвера. Смотреть фото в каком формате драйвера. Смотреть картинку в каком формате драйвера. Картинка про в каком формате драйвера. Фото в каком формате драйвера

Компиляция драйвера выполняется через меню «Компилятор» (это если кто не понял).
в каком формате драйвера. Смотреть фото в каком формате драйвера. Смотреть картинку в каком формате драйвера. Картинка про в каком формате драйвера. Фото в каком формате драйвера

Теперь определимся что будет делать наш первый драйвер. Обычно при изучении программирования начинают с простых вещей, скажем, выполнения математических операций и вывода результата. Вот пусть наш драйвер делает тоже самое, ведь банальная математика производимая в режиме ядра это очень круто!

Может показаться что это куча бессмысленного кода, но это не так.

У каждого драйвера должна быть точка входа, обычно у нее имя DriverEntry() и выполнена она в виде процедуры или функции. Как видите, в этом драйвере есть такая процедура. Если посмотрите на начало кода, то в первых строках увидите как ей передается управление. В этой процедуре происходит инициализация драйвера. Там же назначается процедура завершения работы драйвера, которая в нашем случае имеет имя UnloadDriver(). Процедуры CreateDispatch() и CloseDispatch() назначаются обработчиками соединения и отсоединения проги из юзермода.
Процедура DeviceIoControl() будет обрабатывать запросы WinAPI функции DeviceIoControl(), являющейся в данном драйвере связью с юзермодом. В конце кода расположена так называемая ДатаСекция (DataSection), в которой находятся имена драйвера, сохраненные в формате юникода (для этого использована одна из фишек ассемблера FASM).

Теперь рассмотрим как драйвер будет взаимодействовать с внешним миром. Это происходит в процедуре DeviceIoControl(). В ней отслеживается одно сообщение, а именно — #IOCTL_MyPlus, которое отправляет юзермодная прога, когда ей нужно сложить два числа в режиме ядра (круто звучит, правда?). Когда такое сообщение получено, то считываем из системного буфера, адрес указателя на структуру со слагаемыми, производим сложение и результат помещаем в системный буфер. Собственно это основная задача нашего первого драйвера.

Видите сколько понадобилось кода для выполнения простейшей математической операции — сложения двух чисел?

А теперь рассмотрим программу, работающую с этим драйвером. Она написана на том же PureBasic.

При старте программы вызывается функция OpenDriver(), которая загружает драйвер. Для упрощения, имя драйвера, имя службы и описание службы заданы одинаковыми — «pbDrPlus». Если загрузка неудачная, то выводится соответствующее сообщение и программа завершает свою работу.

Процедура Plus() осуществляет связь с драйвером. Ей передаются хэндл, доступа к драйверу и слагаемые числа, которые помещаются в структуру и указатель на указатель которой, передается драйверу. Результат сложения чисел будет в переменной «Result».

Далее следует код простейшего GUI калькулятора, скопированного из википедии.

Когда закроют окно, то перед завершением работы программы, закрывается связь с драйвером и производится его деинсталляция из системы.

Результат сложения чисел 8 и 2 на скриншоте.

в каком формате драйвера. Смотреть фото в каком формате драйвера. Смотреть картинку в каком формате драйвера. Картинка про в каком формате драйвера. Фото в каком формате драйвера

Исходные коды драйвера и программы, можно найти в папке «Examples», PureBasic на файлопомойке, ссылку на который давал в начале статьи. Там так же найдете примеры драйвера прямого доступа к порам компа и пример работы с памятью ядра.

PS.
Помните, работа в ядре чревата мелкими неожиданностями аля, BSOD (синий экран смерти), поэтому экспериментируйте осторожно и обязательно всё сохраняйте перед запуском драйвера.

За возможную потерю данных, я ответственности не несу!

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *