Как с флешки установить драйверы на ноутбук или компьютер
Вместе с широким распространением персональных компьютеров и ноутбуков предсказуемо появилось и множество проблем у «чайников», особенно при переустановке операционной системы. Одна из таких проблем — критическая нехватка драйверов на важных устройствах. Многие начинающие пользователи даже не задумываются, что после переустановки операционной системы они просто-напросто не смогут выйти в интернет, чтобы скачать нужный драйвер. Поэтому в этой статье мы будем разбираться, как с флешки установить драйверы на ноутбук или компьютер.
Использование флешки при установке драйверов упрощает настройку системы.
Немного теории
Самая распространённая проблема, как уже было сказано, — отсутствие драйверов на устройствах, которые обеспечивают выход в интернет. Если для других устройств найти драйверы можно в сети, то тут уж ничего не сделаешь, нужно иметь нужное обеспечение на флешке либо скачивать его на другой компьютер и оттуда уже переносить данные на «пациента».
Чтобы избежать подобных ситуаций грамотный пользователь всегда имеет набор конкретных драйверов именно для своей машины. Это сильно облегчает жизнь и первоначальную настройку компьютера после переустановки операционной системы. По закону подлости у большинства юзеров такого набора нет, поэтому мы сначала разберёмся, как обойтись без него, а потом соберём его по крупицам так, чтобы в следующий раз справиться с установкой за десять минут.
Способов поставить драйверы — великое множество, но действительно правильным и «честным» источником обеспечения можно считать только сайт производителя. Только так и больше никак.
ВНИМАНИЕ. Скачивая непонятно что и непонятно где, можно запороть систему на раз-два.
В любом случае мы разберём все способы, а дальше вы уже сами решите, что для вас удобно и правильно.
Способ первый, для ленивых
DriverPack Solution, куда же без него. Это сборник наиболее часто встречающихся драйверов. Всех драйверов. Чем новее версия — тем больше новых драйверов в ней присутствует. Сборник очень тяжёлый. На момент написания статьи полный сборник весит около десяти гигабайт, хотя есть и версия с загрузчиком, что определяет драйверы, которых не хватает, и скачивает только их.
Этот вариант подойдёт, если доступ в интернет на свежей машине у вас всё-таки имеется. После запуска программы происходит оценка и установка всех драйверов, которые покажутся нужными программе, в этом её главный минус. Не всегда ставятся все драйверы, не всегда ставятся нужные драйверы. Поэтому этот способ можно считать запасным, когда нормального актуального обеспечения, которое точно подойдёт вашим устройствам, просто нет под рукой.
Итак, что нам нужно сделать, чтобы воспользоваться программой:
- Если у нас нет доступа в интернет. Скачиваем версию со всеми доступными драйверами, закидываем на флешку и запускаем программу на пациенте. Происходит установка, после чего доводим до ума обеспечение для устройств, которые пропустила программа.
- Если у нас есть доступ в сеть. Берём загрузочный файл и программа скачивает только нужные драйверы, после чего их ставит. Более качественный вариант.
После действий программы нередко появляются проблемы с установкой драйверов, некоторые устройства отображаются как неизвестные, что очень сильно усложняет поиск нужного обеспечения.
Способ второй, правильный
Правильная установка драйверов с флешки. До переустановки системы определяем, какие драйверы нам нужно поставить, чтобы получить доступ к интернету. Выбор устройства зависит от того, как именно вы подключаетесь к интернету: через Wi-Fi, PPoE, 3G-модем или ADSL. После переустановки Windows устанавливаем обеспечение, что позволит нам выйти в интернет, а далее скачиваем программное обеспечение для каждого устройства, которое в нём нуждается, после чего всю эту сборку копируем на отдельный носитель и храним до следующего сноса Винды.
Итак, собственно, как искать драйверы? У нас два варианта: пойти на сайт производителя и скачать всё нужное конкретно для нашей модели машины или скачать обеспечение для каждого конкретного устройства по его ID. Если с первым способом всё понятно, то о втором многие, может быть, и не слышали, давайте разбираться.
Нам нужно попасть в Диспетчер устройств. Делается это так: кликаем правой кнопкой по «Мой компьютер» и выбираем пункт «Свойства». В появившемся окне обращаем внимание на левую колонку, где находим пункт «Диспетчер устройств». Откроется ещё одно окно, где будут показаны все устройства, подключённые на данный момент к нашей системе. Устройства, нуждающиеся в программном обеспечении, будут помечены восклицательным знаком, это именно те устройства, с которыми мы будем работать.
Кликаем правой кнопкой мыши на любом из них и выбираем пункт «Свойства». Далее, переходим на вкладку «Сведения» и в выпадающем списке находим строчку «ИД оборудования». В информационном поле будет несколько строчек с непонятными закорючками, они-то нам и нужны.
Берём один из айдишников, по нему мы будем искать драйвер. У нас два варианта: зайти на специализированный сайт или вбить запрос прямо в поисковике. Выбирайте, что вам лучше подходит. На момент написания статьи сайт Devid.info предоставляет услуги по поиску нужного драйвера. Внутри сайта вбиваем в поисковую строку наш ID, выполняем поиск. В полученных результатах жмём на кнопку «Сохранить» рядом с одним из драйверов, откроется новое окно, где нам нужно найти строчку с прямой ссылкой на скачку архива. Не жмите на огромные кнопки «Скачать», это рекламные баннеры.
После того как мы скачали архив, либо распаковываем его и запускаем исполнительный файл, либо пользуемся обновлением драйверов в диспетчере устройств. Выполняется оно через контекстное меню, кликаем правой кнопкой мыши по любому устройству и выбираем пункт «Обновить драйверы», производим поиск на этом компьютере, указываем путь к нашему архиву. Этот способ иногда даёт сбой, тогда стоит запустить установку вручную, распаковав архив самостоятельно.
Третий способ, средства Windows
Большое количество программного обеспечения хранится в базах Майкрософт, грех ими не воспользоваться. Мы включим автообновление для всех устройств. Особенно часто этот способ помогает при настройке принтеров и других офисных устройств.
Заходим в «Устройства и принтеры», кликаем правой кнопкой мыши по любой из групп и выбираем пункт «Параметры установки устройств». В появившихся окнах разрешаем Windows автоматически искать и устанавливать драйверы и обновления.
При отключённом обновлении Винды эта функция у вас не появится. Сразу же после включения автообновлений в трее, скорее всего, появится специфический значок, нажав на который можно будет отследить успешность поиска и установки драйвера. В некоторых случаях драйвер будет найден и установлен. Но не рекомендуется использовать этот способ как основной.
Заключение
Итак, мы разобрались, как с флешки установить драйверы на компьютер или ноутбук. По факту флешка — это только инструмент для хранения вашей личной сборки для конкретной машины. Вся подготовка должна производиться до того, как вы останетесь без интернета, помните это. Мы должны загрузить всё нужное на носитель, а потом пользоваться им. Как вариант, можно хранить нужные драйверы на разделе диска, который вы не будете форматировать. Тогда и внешний накопитель не пригодится. Будьте внимательны, скачивайте только чистое программное обеспечение, желательно с сайта производителя.
Если у вас появились вопросы — задайте их в комментариях!
Как установить драйвера для Windows с флешки
Установочные съёмные носители – распространённая практика для опытных пользователей ПК. Иногда на них может выйти из строя программа автоматической установки. Может показаться, что в такой ситуации «флешка» становится бесполезной. Однако на неё уже установлена база драйверов, что позволяет пользоваться ею и дальше, но немного меняется алгоритм.
О том, как установить драйвера с флешки на Windows будет рассказано в этой статье.
В Интернете можно найти много пакетов, которые содержат в себе огромное количество драйверов и программу для их установки (например, DSP – driver Solution pack). Конечно, эффективность данных пакетов весьма спорная. Прекрасно подходящие для настройки стационарных ПК они могут осложнить работу с ноутбуком (пример: установка драйверов видеокарты. Вместо версии для ноутбуков определяется и используется версия для стационарной видеокарты, что часто приводит к чёрному экрану).
Поскольку программа для установки необязательна, то справится можно и имея только пакет драйверов. Если работа ведётся с ноутбуком – найти такой пакет можно на сайте производителя в разделе «Поддержка». Иногда разумнее искать на англоязычном сайте. Но суть от этого не меняется. Находим драйверы, скачиваем их и копируем на флешку.
При этом не обязательно форматировать носитель или прибегать к подобным операциям. Главное, чтобы все необходимые драйверы были скачаны. Для этого, увы, потребуется воспользоваться уже настроенным устройством.
При должном опыте и техническом оснащении пригодится даже смартфон, который выполнит роль «флешки».
Необходимая подготовка
Справедливости ради следует отметить, что есть определённые нюансы. Чтобы скачивать драйвера, нужно знать, для чего они качаются. Настройка принтера – смотрим модель и скачиваем её драйвера. Здесь всё просто, хотя могут иметься и некоторые нюансы. А если начинка неизвестна?
На помощь приходят программы для проверки оборудования. Прекрасный пример: AIDA 64. В идеале купленная portable версия. Хотя подойдёт и пробный период, если требуется выполнить настройку лишь одного компьютера и в дальнейшем программа не понадобится. Запускаем программу и открываем интересующий раздел (в качестве примера «Системная плата»).
Смотрим модель устройства (раздел «Системная плата») и отправляемся искать драйвера на сайт производителя. Не будем слишком долго останавливаться на данном вопросе. Просто находим и загружаем их, после чего копируем или распаковываем файл на съёмный носитель.
Процедура установки
Подготовка завершена — теперь можно перейти к процессу установки. Данные инструкции подойдут для любой версии ОС Windows (не важно XP, 7 или 10) — будет различаться только вид окон. Будут рассмотрены 2 способа: обычный и усложнённый. Второй может потребоваться при более тонкой работе или специфических драйверах.
Простой способ
Этот способ заключается в том, что выполняется самый обычный запуск исполняемого файла с драйвером. При этом нет ничего страшного в том, что сам драйвер запакован. В процессе установки он будет распакован в нужное место, которое будет очищено после установки.
Запускаем выполнение файла от имени администратора. Это позволит выполнить распаковку данных на системный диск и убережёт от ошибок, которые могут возникнуть. Также драйвер может представлять собой не самораспаковывающийся архив, а папку. В таком случае потребуется найти файл «instal.exe» (иногда “setup.exe”) и запустить его выполнение.
Собственно, в данном способе сложностей нет.
Сложный способ
Применяется в случаях, когда стандартная установка не даёт результата или не может быть выполнена. В нём требуется использование диспетчера устройств. Запускается он в зависимости от версии Windows разными способами:
В Windows 10: кликните ПКМ на «Пуск». Клацните по «Диспетчеру устройств».
В Windows XP и Windows 7: ПКМ по ярлыку «Мой компьютер». Выберите пункт «Управление», затем «Диспетчер устройств».
Дальше особых различий в установке драйвера нет. Будет отличаться только внешний вид окон (как и говорилось выше). Поэтому действия будут полностью аналогичными.
- Найдите и откройте необходимый девайс.
- Кликните ПКМ по устройство и выберите «Обновить драйвер».
- Выберите опцию «Выполнить поиск на этом компьютере». Может отличаться название пункта, но их всего 2, поэтому выбираем то, что стоит как альтернатива автоматическому.
- Открываем «Обзор» и в открывшемся проводнике переходим на съёмный носитель, чтобы там выбрать необходимый файл.
Требуется найти не .exe, а файл с расширением .inf. Его установка и соответствует установке драйвера.
Хотя данный способ и сложнее предыдущего, но он полностью покрывает все проблемы универсальностью. Зная необходимое оборудование, можно скачать драйвера на флешку, а потом легко выполнить их установку.
@как-установить.рф
Как написать свой первый клиентский USB-драйвер (UMDF) — драйверы Windows
- Статья
В этой статье вы будете использовать шаблон USB User-Mode Driver , поставляемый с Microsoft Visual Studio 2019, для написания клиентского драйвера на основе платформы драйверов пользовательского режима (UMDF). После создания и установки клиентского драйвера вы увидите клиентский драйвер в Диспетчер устройств и просмотрите выходные данные драйвера в отладчике.
UMDF (называемый в этой статье платформой) основан на модели компонентных объектов (COM). Каждый объект фреймворка должен реализовывать IUnknown и его методы, QueryInterface , AddRef и Release по умолчанию. Методы AddRef и Release управляют временем жизни объекта, поэтому клиентскому драйверу не нужно поддерживать счетчик ссылок. Метод QueryInterface позволяет драйверу клиента получать указатели интерфейса на другие объекты платформы в объектной модели Windows Driver Frameworks (WDF). Объекты Framework выполняют сложные задачи драйвера и взаимодействуют с Windows. Некоторые объекты фреймворка предоставляют интерфейсы, которые позволяют клиентскому драйверу взаимодействовать с фреймворком.
Драйвер клиента на основе UMDF реализован как внутрипроцессный сервер COM (DLL), а C++ является предпочтительным языком для написания драйвера клиента для USB-устройства. Как правило, клиентский драйвер реализует несколько интерфейсов, предоставляемых платформой. В этой статье говорится о классе, определяемом драйвером клиента, который реализует интерфейсы платформы как класс обратного вызова. После создания экземпляров этих классов результирующие объекты обратного вызова связываются с определенными объектами фреймворка. Это партнерство дает драйверу клиента возможность реагировать на события, связанные с устройством или системой, о которых сообщает платформа. Всякий раз, когда Windows уведомляет инфраструктуру об определенных событиях, инфраструктура вызывает обратный вызов драйвера клиента, если он доступен. В противном случае платформа продолжит обработку события по умолчанию. Код шаблона определяет классы обратного вызова драйвера, устройства и очереди.
Объяснение исходного кода, сгенерированного шаблоном, см. в разделе Общие сведения о коде шаблона UMDF для драйвера клиента USB.
Предварительные условия
Для разработки, отладки и установки драйвера пользовательского режима вам потребуются два компьютера:
- Главный компьютер под управлением Windows 7 или более поздней версии операционной системы Windows. Хост-компьютер — это ваша среда разработки, в которой вы пишете и отлаживаете свой драйвер.
- Целевой компьютер с версией операционной системы, на которой вы хотите протестировать драйвер, например Windows 10 версии 19.
В некоторых случаях, когда на главном и целевом компьютерах установлена одна и та же версия Windows, можно использовать только один компьютер с Windows 7 или более поздней версией Windows. В этой статье предполагается, что вы используете два компьютера для разработки, отладки и установки драйвера пользовательского режима.
Прежде чем начать, убедитесь, что вы соответствуете следующим требованиям:
Требования к программному обеспечению
На вашем хост-компьютере установлена Visual Studio 2019.
На главном компьютере установлен последний комплект драйверов Windows (WDK) для Windows 10 версии 1903.
В комплект входят заголовки, библиотеки, инструменты, документация и средства отладки, необходимые для разработки, сборки и отладки клиентского драйвера USB. Вы можете получить последнюю версию WDK из Как получить WDK.
На главном компьютере установлена последняя версия средств отладки для Windows. Вы можете получить последнюю версию из WDK или загрузить и установить средства отладки для Windows.
Если вы используете два компьютера, вы должны настроить главный и целевой компьютеры для отладки в пользовательском режиме. Дополнительные сведения см. в разделе Настройка отладки пользовательского режима в Visual Studio.
Требования к оборудованию
Получите USB-устройство, для которого вы будете писать клиентский драйвер. В большинстве случаев вам предоставляется USB-устройство и его аппаратная спецификация. Спецификация описывает возможности устройства и поддерживаемые команды производителя. Используйте спецификацию, чтобы определить функциональные возможности драйвера USB и соответствующие проектные решения.
Если вы новичок в разработке USB-драйверов, используйте учебный комплект OSR USB FX2 для изучения образцов USB, включенных в WDK. Он содержит устройство USB FX2 и все необходимые аппаратные характеристики для реализации клиентского драйвера.
Рекомендуем прочитать
- Понятия для всех разработчиков драйверов
- Узлы устройств и стеки устройств
- Начало работы с драйверами Windows
- Платформа драйверов пользовательского режима
- Разработка драйверов с помощью Windows Driver Foundation , написанный Пенни Орвик и Гаем Смитом. Дополнительные сведения см. в разделе Разработка драйверов с помощью WDF.
Инструкции
Шаг 1. Создайте код драйвера UMDF с помощью шаблона USB-драйвера Visual Studio 2019
Инструкции по созданию кода драйвера UMDF см. в разделе Создание драйвера UMDF на основе шаблона.
Для кода, специфичного для USB, выберите следующие параметры в Visual Studio 2019
- В диалоговом окне New Project в поле поиска вверху введите USB.
- В средней панели выберите Драйвер режима пользователя, USB (UMDF V2) .
- Выбрать Далее .
- Введите имя проекта, выберите место для сохранения и выберите Создать .
На следующих снимках экрана показано диалоговое окно New Project для шаблона USB User-Mode Driver .
В этой статье предполагается, что имя проекта — «MyUSBDriver_UMDF_». Он содержит следующие файлы:
Файлы | Описание |
---|---|
Driver.h; Драйвер.с | Объявляет и определяет класс обратного вызова, реализующий интерфейс IDriverEntry . Класс определяет методы, которые вызываются объектом драйвера платформы. Основная цель этого класса — создать объект устройства для клиентского драйвера. |
Устройство.h; Устройство.с | Объявляет и определяет класс обратного вызова, который реализует IPnpCallbackHardware интерфейс. Класс определяет методы, которые вызываются объектом устройства платформы. Основная цель этого класса — обработка событий, происходящих в результате изменения состояния Plug and Play (PnP). Класс также выделяет и инициализирует ресурсы, необходимые драйверу клиента, пока он загружен в систему. |
IoQueue.h; IoQueue.c | Объявляет и определяет класс обратного вызова, который реализует IQueueCallbackDeviceIoControl 9Интерфейс 0014. Класс определяет методы, которые вызываются объектом очереди платформы. Цель этого класса — извлекать запросы ввода-вывода, поставленные в очередь в инфраструктуре. |
Внутренний.h | Предоставляет общие объявления, используемые драйвером клиента и пользовательскими приложениями, взаимодействующими с USB-устройством. Он также объявляет функции трассировки и макросы. |
Dllsup.cpp | Содержит реализацию точки входа модуля драйвера. |
<Имя проекта> .inf | INF-файл, необходимый для установки драйвера клиента на целевой компьютер. |
Экспорт.def | DEF-файл, который экспортирует имя функции точки входа модуля драйвера. |
Шаг 2. Измените INF-файл, чтобы добавить информацию о вашем устройстве
Перед созданием драйвера необходимо изменить INF-файл шаблона, указав информацию о вашем устройстве, в частности строку идентификатора оборудования.
Чтобы предоставить строку идентификатора оборудования
Подключите USB-устройство к главному компьютеру и позвольте Windows перечислить устройство.
Откройте Диспетчер устройств и откройте свойства вашего устройства.
На вкладке Сведения выберите Идентификаторы оборудования в разделе Свойство.
Идентификатор оборудования для устройства отображается в списке. Выберите и удерживайте (или щелкните правой кнопкой мыши) и скопируйте строку идентификатора оборудования.
В Solution Explorer разверните Файлы драйверов и откройте файл INF.
Замените следующую строку идентификатора вашего оборудования.
[Стандарт.NT$ARCH$] %DeviceName%=MyDevice_Install, USB\VID_vvvv&PID_pppp
Обратите внимание на записи AddReg в файле информации о драйвере (INF).
[CoInstallers_AddReg] HKR,CoInstallers32,0x00010008,"WudfCoinstaller.dll" HKR,CoInstallers32,0x00010008,"WudfUpdate_01011.dll" HKR,CoInstallers32,0x00010008,"WdfCoInstaller01011.dll,WdfCoInstaller" HKR,CoInstallers32,0x00010008,"WinUsbCoinstaller2.dll"
- WudfCoinstaller.dll (программа совместной установки конфигурации)
- WUDDFUpdate_ <версия> .dll (распространяемый соустановщик)
- Wdfcoinstaller*<версия>*.dll (соустановщики для KMDF)
- Winusbcoinstaller2.dll ((соустановщики для Winusb.sys)
- MyUSBDriver_UMDF_. dll (модуль клиентского драйвера)
Если директива INF AddReg ссылается на распространяемый соустановщик UMDF (WUDFUpdate_ <версия> .dll), вы не должны ссылаться на соустановщик конфигурации (WUDFCoInstaller.dll). Ссылка на оба соустановщика в INF приводит к ошибкам установки.
Для всех клиентских USB-драйверов на основе UMDF требуются два драйвера Microsoft: рефлектор и WinUSB.
Рефлектор — если ваш драйвер загружается успешно, рефлектор загружается как самый верхний драйвер в стеке режима ядра. Рефлектор должен быть главным драйвером в стеке режима ядра. Чтобы выполнить это требование, в файле INF шаблона отражатель указан как служба, а WinUSB — как драйвер фильтра нижнего уровня в INF:
.[MyDevice_Install.NT.Services] AddService=WUDFRd,0x000001fa,WUDFRD_ServiceInstall ; флаг 0x2 устанавливает это как сервис для устройства AddService=WinUsb,0x000001f8,WinUsb_ServiceInstall; эта служба установлена, потому что это фильтр.
WinUSB — пакет установки должен содержать программы совместной установки для Winusb. sys, так как для клиентского драйвера WinUSB является шлюзом к стеку USB-драйверов режима ядра. Еще один загружаемый компонент — это DLL пользовательского режима с именем WinUsb.dll в хост-процессе клиентского драйвера (Wudfhost.exe). Winusb.dll предоставляет функции WinUSB, которые упрощают процесс связи между драйвером клиента и WinUSB.
Шаг 3. Создайте клиентский драйвер USB, код
Чтобы создать драйвер:
- Откройте проект драйвера или решение в Visual Studio 2019.
- Щелкните правой кнопкой мыши решение в Solution Explorer и выберите Configuration Manager .
- В Configuration Manager выберите Active Solution Configuration (например, Debug или Release ) и Active Solution Platform (например, Win32 ), которые соответствуют типу вашей сборки. интересует.
- Убедитесь, что GUID интерфейса вашего устройства точен во всем проекте.
- GUID интерфейса устройства определен в файле Trace.h, и на него ссылается
MyUSBDriverUMDFCreateDevice
в файле Device.c. Когда вы создаете проект с именем «MyUSBDriver_UMDF_», Visual Studio 2019 определяет GUID интерфейса устройства с именемGUID_DEVINTERFACE_MyUSBDriver_UMDF_
, но вызываетWdfDeviceCreateDeviceInterface
с неверным параметром «GUID_DEVINTERFACE_MyUSBDriverUMDF». Замените неправильный параметр именем, определенным в Trace.h, чтобы обеспечить правильную сборку драйвера.
- GUID интерфейса устройства определен в файле Trace.h, и на него ссылается
- В меню Build выберите Build Solution .
Дополнительные сведения см. в разделе Создание драйвера.
Шаг 4. Настройка компьютера для тестирования и отладки
Для тестирования и отладки драйвера запустите отладчик на главном компьютере и драйвер на целевом компьютере. До сих пор вы использовали Visual Studio на главном компьютере для создания драйвера. Далее вам нужно настроить целевой компьютер. Чтобы настроить целевой компьютер, следуйте инструкциям в разделе Подготовка компьютера для развертывания и тестирования драйвера.
Шаг 5. Включите трассировку для отладки ядра
Код шаблона содержит несколько сообщений трассировки (TraceEvents), которые могут помочь вам отслеживать вызовы функций. Все функции в исходном коде содержат сообщения трассировки, которые отмечают вход и выход из подпрограммы. Для ошибок сообщение трассировки содержит код ошибки и осмысленную строку. Поскольку трассировка WPP включена для вашего проекта драйвера, файл символов PDB, созданный в процессе сборки, содержит инструкции по форматированию сообщений трассировки. Если вы настроите хост и целевые компьютеры для трассировки WPP, ваш драйвер может отправлять сообщения трассировки в файл или отладчику.
Чтобы настроить хост-компьютер для трассировки WPP
Создайте файлы формата сообщений трассировки (TMF), извлекая инструкции по форматированию сообщений трассировки из файла символов PDB.
Вы можете использовать Tracepdb.exe для создания файлов TMF. Инструмент находится в папке <установочная папка> Windows Kits\10\bin\ <архитектура> WDK. Следующая команда создает файлы TMF для проекта драйвера.
tracepdb -f
-p Параметр -f указывает расположение и имя файла символов PDB. Параметр -p указывает расположение файлов TMF, созданных Tracepdb. Дополнительные сведения см. в разделе Команды Tracepdb .
В указанном месте вы увидите три файла (по одному на каждый файл .c в проекте). Им присваиваются имена файлов GUID.
В отладчике введите следующие команды:
.загрузить Wmitrace .цепь !wmitrace.searchpath +***<Расположение файла TMF>
Эти команды:
- Загрузите расширение Wmitrace.dll.
- Проверяет, загружено ли расширение отладчика.
- Добавляет расположение файлов TMF в путь поиска расширения отладчика.
Результат выглядит следующим образом:
Путь поиска в формате трассировки: 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE;c:\drivers\tmf
Настройка целевого компьютера для отслеживания WPP
Убедитесь, что на целевом компьютере установлен инструмент Tracelog. Инструмент находится в папке
Windows Kits\10\Tools\ WDK. Дополнительные сведения см. в разделе Синтаксис команды трассировки .Откройте окно команд и запустите от имени администратора.
Введите следующую команду:
tracelog -start MyTrace -guid \#c918ee71-68c7-4140-8f7d-c907abbcb05d -flag 0xFFFF -level 7-rt -kd
Команда запускает сеанс трассировки с именем MyTrace.
Аргумент guid указывает идентификатор GUID поставщика трассировки, который является клиентским драйвером. Вы можете получить GUID из Trace. h в проекте Visual Studio 2019. В качестве другого варианта вы можете ввести следующую команду и указать GUID в файле .guid. Файл содержит GUID в формате дефиса:
tracelog -start MyTrace -guid c:\\drivers\\Provider.guid -flag 0xFFFF -level 7-rt -kd
Вы можете остановить сеанс трассировки, введя следующую команду:
tracelog -stop MyTrace
Шаг 6. Разверните драйвер на целевом компьютере
- В окне Solution Explorer щелкните правой кнопкой мыши <имя проекта> Package и выберите Properties .
- На левой панели перейдите к Свойства конфигурации > Установка драйвера > Развертывание .
- Установите флажок Включить развертывание и установите флажок Импортировать в хранилище драйверов.
- Для Имя удаленного компьютера укажите имя целевого компьютера.
- Выберите Установить и проверить .
- Выбрать Хорошо .
- В меню Debug выберите Start Debugging или нажмите F5 на клавиатуре.
Примечание
Укажите , а не идентификатор оборудования вашего устройства в поле Идентификатор оборудования Обновление драйвера . Идентификатор оборудования должен быть указан только в файле информации о вашем драйвере (INF).
Шаг 7. Просмотрите драйвер в Диспетчере устройств
Введите следующую команду, чтобы открыть Диспетчер устройств .
разработчик
Убедитесь, что Диспетчер устройств показывает следующий узел.
USB-устройство
MyUSBDriver_UMDF_Device
Шаг 8. Просмотрите выходные данные в отладчике
Убедитесь, что сообщения трассировки отображаются в окне Debugger Immediate на хост-компьютере.
Вывод должен быть примерно таким:
[0]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyDevice::OnPrepareHardware Entry [0]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyDevice::OnPrepareHardware Выход [1]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyDevice::CreateInstanceAndInitialize Entry [1]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyDevice::Инициализировать запись [1]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyDevice::Инициализировать Выход [1]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyDevice::CreateInstanceAndInitialize Выход [1]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyDevice::Настроить запись [1]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyIoQueue::CreateInstanceAndInitialize Entry [1]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyIoQueue::Инициализировать запись [1]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyIoQueue::Инициализировать Выход [1]0744. 05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyIoQueue::CreateInstanceAndInitialize Выход [1]0744.05F0::00/00/0000-00:00:00.000 [MyUSBDriver_UMDF_]CMyDevice::Настроить Выход
Давайте посмотрим, как фреймворк и клиентский драйвер работают вместе, чтобы взаимодействовать с Windows и обрабатывать запросы, отправляемые на USB-устройство. На этом рисунке показаны модули, загруженные в систему для клиентского USB-драйвера на основе UMDF.
Назначение каждого модуля описано здесь:
- Приложение — процесс пользовательского режима, который выдает запросы ввода-вывода для связи с USB-устройством.
- Диспетчер ввода-вывода — компонент Windows, который создает пакеты запросов ввода-вывода (IRP) для представления полученных запросов приложений и перенаправляет их на вершину стека устройств режима ядра для целевого устройства.
- Reflector — предоставленный корпорацией Майкрософт драйвер режима ядра, установленный в верхней части стека устройств режима ядра (WUDFRd. sys). Рефлектор перенаправляет IRP, полученные от диспетчера ввода-вывода, хост-процессу клиентского драйвера. После получения запроса платформа и клиентский драйвер обрабатывают запрос.
- Хост-процесс — процесс, в котором работает драйвер пользовательского режима (Wudfhost.exe). Он также содержит платформу и диспетчер ввода-вывода.
- Драйвер клиента — функциональный драйвер пользовательского режима для USB-устройства.
- UMDF — модуль платформы, который обрабатывает большинство взаимодействий с Windows от имени клиентского драйвера. Он предоставляет интерфейсы драйверов устройств пользовательского режима (DDI), которые клиентский драйвер может использовать для выполнения общих задач драйвера.
- Диспетчер — механизм, работающий в хост-процессе; определяет, как направить запрос в режим ядра после того, как он был обработан драйверами пользовательского режима и достиг нижней части стека пользовательского режима. На иллюстрации диспетчер перенаправляет запрос в библиотеку DLL пользовательского режима, Winusb. dll.
- Винусб.
- Winusb.sys — предоставленный корпорацией Майкрософт драйвер, необходимый для всех клиентских драйверов UMDF для USB-устройств. Драйвер должен быть установлен под отражателем и действует как шлюз к стеку драйверов USB в режиме ядра. Дополнительные сведения см. в разделе WinUSB.
- Стек драйверов USB — набор драйверов, предоставленных Microsoft, которые обеспечивают связь на уровне протокола с USB-устройством. Дополнительные сведения см. в разделе Драйверы USB на стороне хоста в Windows.
Всякий раз, когда приложение отправляет запрос на стек драйвера USB, диспетчер ввода-вывода Windows отправляет запрос рефлектору, который направляет его драйверу клиента в пользовательском режиме. Драйвер клиента обрабатывает запрос, вызывая определенные методы UMDF, которые внутренне вызывают функции WinUSB для отправки запроса на WinUSB. Получив запрос, WinUSB либо обрабатывает запрос, либо перенаправляет его в стек драйвера USB.
- Понимание кода шаблона UMDF для клиентского драйвера USB
- Как включить выборочную приостановку USB и пробуждение системы в драйвере UMDF для USB-устройства
- Начало работы с разработкой клиентского USB-драйвера
usb — Как начать писать драйвер устройства для Linux?
спросил
Изменено 10 месяцев назад
Просмотрено 2к раз
У меня есть PCI-карта USB 3. 0 для ноутбука. Драйвера есть только до Windows 7. У меня есть https://www.startech.com/Cards-Adapters/USB-3.0/Cards/2-Port-ExpressCard-SuperSpeed-USB-3-Card-Adapter~ECUSB3S22#dnlds
У меня есть старые ноутбуки с Ubuntu 16. Я хочу создать драйвер Linux для этой карты.
Некоторые намеки на то, кто написал программное обеспечение. При установке программного обеспечения отображается другая компания. Это компания https://www.renesas.com/en-us/products/software-tools/software-os-middleware-driver.html
Мне интересно, могу ли я использовать некоторые файлы драйверов Windows 7 и спецификации Renesas для начала работы.
У меня нет хорошего справочника по драйверам устройств Linux. Любое руководство о том, с чего я могу начать? Мой единственный опыт — это некоторое время назад на C/C++ в MS Windows и веб-приложениях для бизнеса с Java.
- usb
- linux-драйвер устройства
1
впервые прочитал о Модель драйвера устройства Linux
https://wiki. linuxfoundation.org/tab/linux-device-driver-model
https://static.lwn.net/images/pdf/LDD3/ch24.pdf
http://www.staroceans.org/kernel-and-driver/The%20Linux%20Kernel%20Driver%20Model.pdf
вам нужно написать модуль ядра/драйвер, который регистрирует карту как корневой концентратор
если вы запускаете lsusb
в linux хост-порты USB являются корневыми концентраторами
также запустите lspci -v
для получения устройств PCI, ваш модуль ядра должен включать ссылку на драйвер ядра / /forums.linuxmint.com/viewtopic.php?t=112069
пример с исходным кодом для этого находится в
https://github.com/geoffreytran/AX88179_178A
https://github.com/geoffreytran/AX88179_178A/блоб/мастер/ax88179_178a.c
USB-концентраторы в целом находятся в https://github.com/torvalds/linux/blob/master/drivers/usb/core/hub.c
ключевые компоненты модулей ядра USB — это URB (блоки запросов USB)
Вполне уверен, что хорошей отправной точкой, если вы еще этого не сделали, является чтение ядра Linux/Unix.