Встроенное по системы что это драйвер
Заполняем пробелы — расширяем горизонты!
Драйвер (от английского Driver — водитель) — программа, отвечающая за работу данного устройства или оборудования, которая обеспечивает связь между компьютером и устройством. Драйверы еще иногда называют «дрова» (компьютерный жаргон), а любое устройство называют еще «девайсом».
Например, выражение «дрова для камеры» означает «драйверы для камеры», что в свою очередь означает «программы для совместимости работы операционной системы с камерой».
Зачем нужны драйверы?
Появление новых устройств, все более сложных, происходит чрезвычайно быстро и в огромном количестве. Разрабатывают эти устройства различные компании, придерживаясь своих собственных стандартов и взглядов на жизнь. Соответственно, заранее заложить в операционную систему какие-то программы, обеспечивающие совместимость операционной системы со всеми существующими и еще даже не придуманными устройствами, – невозможно.
Вот и получается, что каждый производитель того или иного устройства должен написать драйверы для своих новых устройств, иначе кто же купит такое несовместимое с компьютером устройство? Причем, программисты той компании, где разработано устройство, пишут несколько драйверов, обеспечивающих совместимость нового устройства с разными операционными системами. Тогда одно и то же устройство можно продавать пользователям разных операционных систем.
Как узнать, какие на моем компьютере устройства и драйверы?
Для Windows XP узнать о том, какие есть устройства на ПК, можно в Диспетчере устройств. Чтобы открыть Диспетчер устройств, перейдите Пуск – Настройки – Панель управления – Система – вкладка «Оборудование»:
Более подробно о том, как узнать, какие на вашем компьютере устройства и драйверы, рассмотрим на примере Windows 7. Для изменения параметров и обновления драйверов используется Диспетчер устройств. Чтобы открыть Диспетчер устройств (Device Manager) в Windows 7, щелкните кнопку Пуск, в строке Поиска меню Пуск введите «Диспетчер устройств» и щелкните по имени программы.
Другой способ открыть Диспетчер устройств в Windows 7: пройти по маршруту Пуск — Панель управления — Система и безопасность — вкладка «Оборудование и звук» — Устройства и принтеры — Диспетчер устройств:
В Диспетчере устройств выбираем необходимое устройство, например, Видеоадаптеры, кликаем по нему 2 раза левой кнопкой мыши, в выпадающем списке кликаем по нужному устройству правой кнопкой мыши и затем — по кнопке «Свойства». В результате откроется окно «Свойства», где на вкладке «Драйвер» находим информацию о производителе и драйвере этого устройства:
Нужно ли делать обновление драйверов устройств и каким образом?
В приведенном выше окне «Свойства» можно сделать обновление драйверов устройств, а также при неудачном обновлении драйвера сделать откат к старому драйверу.
Например, я не делаю обновлений драйверов для коммуникатора Nokia PC Suite по причине следующих после этого неизбежных проблем с операционной системой.
С другой стороны, если не обновлять некоторые драйверы, то могут перестать нормально функционировать соответствующие этим драйверам устройства. Поэтому приходится пользоваться как кнопкой «Обновить» драйвера на приведенном выше скриншоте, так и кнопкой «Откатить».
Где найти драйверы?
Если коротко отвечать на этот вопрос, то:
- драйверы иногда находит операционная система Windows 7 самостоятельно в Интернете и сама устанавливает их,
- драйверы можно установить вручную с CD или DVD диска,
- либо установить вручную с официального сайта производителя устройства.
А теперь немного подробнее. Обычно с операционной системой поставляются драйверы для устройств, без которых система не сможет функционировать.
Однако для некоторых устройств могут потребоваться специальные драйверы, обычно предоставляемые на лицензионном CD или DVD диске производителем конкретного устройства.
Например, драйвер для стандартной мышки включен в состав операционной системы. Но если приобрести специальную мышку для компьютерных игр с дополнительными кнопками и функциями, то без установки соответствующего драйвера такая мышка полноценно работать не будет.
Драйвер обычно при покупке прилагается к мышке на диске. CD или DVD диск с этим драйвером желательно сохранять даже после установки с него соответствующей программы на компьютер во избежание впоследствии недоразумений, например, при переустановке операционной системы.
CD или DVD диск с записанными на него драйверами прилагается также к новому принтеру, к новой веб-камере и т.п. Если такого диска нет, а продавец предлагает Вам поискать необходимый драйвер в Интернете (кстати, это реальный случай), то он что-то мудрит и покупать у него устройство не следует. Поэтому при покупке следует выяснять у продавца наличие диска с драйвером для нового устройства.
Если устройство досталось «бывшим в употреблении», а CD или DVD диск с драйверами отсутствует, то драйвер для такого устройства следует поискать на сайте производителя данного устройства. Для этого в поисковой строке Google или Яндекс следует ввести запрос примерно такого содержания: «официальный сайт Название устройства».
Например, для принтера Hewlett-Packard можно ввести запрос «официальный сайт HP». Подробнее я об этом писала в статье «Не работает принтер при переходе с Win XP на Win 7». Наверное, Вы уже догадались, что проблема с принтером возникла как раз из-за драйвера для принтера, то есть старый драйвер под Win XP с лицензионного диска не подошел для Win 7.
Драйверы необходимы не только для внешних устройств типа принтера, веб-камеры или мышки. Драйверы необходимы и для внутренних устройств, например, для материнской (системной) платы, для видеокарты, для звуковой карты.
Если видеокарта или звуковая карта встроены в материнскую плату, то драйвера для них не нужны, потому что они встроены в драйвера для материнской платы. Если видеокарта или звуковая карта устанавливаются отдельно, то для каждой карты нужен отдельный диск с драйверами.
Как устанавливать драйверы?
Если есть диск, то вставляем его и ждем, когда он автоматически запустится, загрузит программное обеспечение и на этом установка драйвера завершена.
Если этого по каким-то причинам не произошло, то идем в Пуск – Компьютер, кликаем по вставленному диску, находим и запускаем файл setup.exe.
Если драйвер скачен с официального сайта производителя, то точно также находим и запускаем setup.exe.
В этом разделе описывается, как обновить встроенное ПО съемных или встроенных устройств с помощью службы клиентский компонент Центра обновления Windows (WU). Сведения об обновлении встроенного ПО системы см. в разделе Windows платформе обновления встроенного ПО UEFI.
Для этого вы предоставите механизм обновления, реализованный в качестве драйвера устройства, который включает полезные данные встроенного ПО. Если устройство использует предоставленный поставщиком драйвер, вы можете добавить логику обновления встроенного ПО и полезные данные в существующий драйвер функции или предоставить отдельный пакет драйверов обновления встроенного ПО. Если устройство использует предоставленный корпорацией Майкрософт драйвер, необходимо предоставить отдельный пакет драйверов обновления встроенного ПО. В обоих случаях пакет драйверов обновления встроенного ПО должен быть универсальным. Дополнительные сведения об универсальных драйверах см. в разделе начало работы с Windows Drivers. Двоичный файл драйвера может использовать KMDF, UMDF 2 или модель драйвера Windows.
Так как wu не может выполнять программное обеспечение, драйвер обновления встроенного ПО должен передать встроенное ПО для установки Plug and Play (PnP).
Действия драйвера обновления встроенного ПО
Как правило, драйвер обновления встроенного ПО — это упрощенный драйвер устройства, который выполняет следующие действия:
При запуске устройства или в функции обратного вызова EVT_WDF_DRIVER_DEVICE_ADD драйвера:
- Определите устройство, к которому оно подключено.
- Определите, имеет ли драйвер более раннюю версию встроенного ПО, чем версия встроенного ПО, в настоящее время мигающая на оборудовании устройства.
- Если требуется обновление встроенного ПО, задайте таймер событий для планирования обновления.
- В противном случае ничего делать, пока драйвер не будет запущен снова.
Во время выполнения системы:
- Если обновление поставлено в очередь, дождитесь выполнения набора условий.
- При соблюдении условий выполните обновление встроенного ПО на устройстве.
Содержимое драйвера обновления встроенного ПО
Как правило, пакет драйвера обновления встроенного ПО содержит следующее:
Отправьте пакет обновления встроенного ПО как отдельную отправку драйвера.
Добавление логики обновления встроенного ПО в драйвер, предоставленный поставщиком
Существующий драйвер функции может реализовать механизм обновления встроенного ПО, как показано на следующей схеме:
Кроме того, если вы хотите отдельно обновить драйвер функции и драйвер обновления встроенного ПО, создайте второй узел устройства, на котором будет установлен драйвер обновления встроенного ПО. На следующей схеме показано, как одно устройство может иметь два отдельных узла устройства:
В этом случае узлы устройства функций и встроенного ПО должны иметь разные аппаратные идентификаторы, чтобы быть независимыми.
Существует несколько способов создания второго узла устройства. Некоторые типы устройств могут предоставлять второй узел устройства на одном физическом устройстве, например USB. Эту функцию можно использовать для создания узла устройства, предназначенного для wu, и установки на него драйвера обновления встроенного ПО. Однако многие типы устройств не позволяют одному физическому устройству перечислять несколько узлов устройств.
В этом случае используйте расширение INF, указывающее директиву AddComponent, чтобы создать узел устройства, который может быть ориентирован клиентский компонент Центра обновления Windows и установить на него драйвер обновления встроенного ПО. В следующем фрагменте из INF-файла показано, как это сделать:
В приведенном выше примере INF указывает, ComponentIDs = ComponentDeviceId что дочернее устройство будет иметь идентификатор SWC\ComponentDeviceId оборудования. При установке этот INF создает следующую иерархию устройств:
Для будущих обновлений встроенного ПО обновите INF-файл и двоичный файл, содержащий полезные данные встроенного ПО.
Добавление логики обновления встроенного ПО в драйвер, предоставленный корпорацией Майкрософт
Чтобы обновить встроенное ПО для устройств, использующих предоставленный корпорацией Майкрософт драйвер, необходимо создать второй узел устройства, как показано выше.
Рекомендации
PnP разрешает это расположение при установке устройства. Затем драйвер может открыть этот раздел реестра, чтобы определить расположение полезных данных.
Драйверы обновления встроенного ПО должны указывать следующие записи INF:
Чтобы найти другой узел устройства, драйвер встроенного ПО должен ходить по дереву устройства относительно самого себя, а не перечислять все узлы устройств для соответствия. Пользователь может подключиться к нескольким экземплярам устройства, а драйвер встроенного ПО должен обновлять только устройство, с которым оно связано. Как правило, расположенный узел устройства является родительским или одноуровневим элементом узла устройства, на котором установлен драйвер встроенного ПО. Например, на приведенной выше схеме с двумя узлами устройств драйвер обновления встроенного ПО может искать одноуровневое устройство, чтобы найти драйвер функции. На приведенной выше схеме драйвер встроенного ПО может найти родительское устройство, чтобы найти основное устройство, с которым оно должно взаимодействовать.
Драйвер должен быть надежным для нескольких экземпляров устройства, находясь в системе, возможно, с несколькими различными версиями встроенного ПО. Например, может существовать один экземпляр устройства, который был подключен и обновлен несколько раз; Новое устройство может быть подключено, в котором несколько версий встроенного ПО старых. Это означает, что состояние (например, текущая версия) должно храниться на устройстве, а не в глобальном расположении.
Если существует существующий метод обновления встроенного ПО (НАПРИМЕР, EXE или совместного установщика), можно в значительной степени повторно использовать код обновления в драйвере UMDF.
Сложно дать одно точное определение для драйвера термина. В самом фундаментальном смысле драйвер — это программный компонент, который позволяет операционной системе и устройству взаимодействовать друг с другом.
Например, предположим, что приложению необходимо считывать некоторые данные с устройства. Приложение вызывает функцию, реализованную операционной системой, а операционная система вызывает функцию, реализованную драйвером. Драйвер, написанный той же компанией, которая разработала и произвела устройство, знает, как взаимодействовать с оборудованием устройства для получения данных. После того как драйвер получает данные с устройства, он возвращает данные в операционную систему, которая возвращает его приложению.
Расширение определения
Наше объяснение до сих пор слишком упрощено несколькими способами:
Не все драйверы должны быть написаны компанией, которая разработала устройство.
Во многих случаях устройство разработано в соответствии с опубликованным стандартом оборудования. Это означает, что драйвер может быть написан корпорацией Майкрософт, и конструктор устройств не должен предоставлять драйвер.
Не все драйверы взаимодействуют напрямую с устройством.
Для заданного запроса ввода-вывода (например, для чтения данных с устройства) часто существует несколько драйверов, многоуровневые в стеке драйверов, которые участвуют в запросе. Обычный способ визуализации стека — с первым участником вверху и последним участником внизу, как показано на этой схеме. Некоторые драйверы в стеке могут участвовать, преобразовав запрос из одного формата в другой. Эти драйверы не взаимодействуют напрямую с устройством; они просто управляют запросом и передают запрос вместе с драйверами, которые ниже в стеке.
Драйвер функции: один драйвер в стеке, который напрямую взаимодействует с устройством, называется драйвером функции.
Драйвер фильтра: драйверы, выполняющие вспомогательную обработку, называются драйверами фильтров.
Дополнительные сведения о стеках см. в разделе "Стеки драйверов".
Некоторые драйверы фильтров отслеживают и записывают сведения о запросах ввода-вывода, но не участвуют в них активно. Например, некоторые драйверы фильтров выполняют роль проверяющих, чтобы убедиться, что другие драйверы в стеке правильно обрабатывают запрос ввода-вывода.
Мы могли бы расширить определение драйвера , сказав, что драйвер является любым программным компонентом, который наблюдает или участвует в обмене данными между операционной системой и устройством.
Драйверы программного обеспечения
Расширенное определение является достаточно точным, но по-прежнему неполным, так как некоторые драйверы вообще не связаны с каким-либо аппаратным устройством.
Например, предположим, что необходимо написать средство, которое имеет доступ к основным структурам данных операционной системы, доступ к которым можно получить только с помощью кода, выполняемого в режиме ядра. Это можно сделать, разделив средство на два компонента. Первый компонент выполняется в пользовательском режиме и представляет пользовательский интерфейс. Второй компонент выполняется в режиме ядра и имеет доступ к данным основной операционной системы. Компонент, который выполняется в пользовательском режиме, называется приложением, а компонент, который выполняется в режиме ядра, называется драйвером программного обеспечения. Программный драйвер не связан с аппаратным устройством.
На этой схеме показано приложение в пользовательском режиме, взаимодействующее с драйвером программного обеспечения в режиме ядра.
Драйверы программного обеспечения всегда выполняются в режиме ядра. Основной причиной написания драйвера программного обеспечения является получение доступа к защищенным данным, доступным только в режиме ядра. Однако драйверам устройств не всегда требуется доступ к данным и ресурсам в режиме ядра. Поэтому некоторые драйверы устройств работают в пользовательском режиме.
Дополнительные сведения о режимах процессора см. в разделе "Режим пользователя" и "Режим ядра".
Водители автобуса
Существует категория водителя, который мы еще не упомянули, водитель автобуса. Чтобы понять драйверы шины, необходимо понять узлы устройств и дерево устройств.
Сведения о деревьях устройств, узлах устройств и драйверах шины см. в разделе "Узлы устройств" и "Стеки устройств".
Дополнительные возможности драйверов функций
Наше объяснение до сих пор упрощает определение драйвера функции. Мы сказали, что драйвер функции для устройства является одним драйвером в стеке, который взаимодействует напрямую с устройством. Это верно для устройства, которое подключается непосредственно к шине взаимодействия периферийных компонентов (PCI). Драйвер функции для устройства PCI получает адреса, сопоставленные с ресурсами порта и памяти на устройстве. Драйвер функции напрямую взаимодействует с устройством, записывая их на эти адреса.
Однако во многих случаях устройство не подключается непосредственно к шине PCI. Вместо этого устройство подключается к адаптеру шины узла, подключенного к шине PCI. Например, USB-тостер подключается к адаптеру шины узла (называемому контроллером USB-узла), который подключен к шине PCI. Usb-тостер имеет драйвер функции, а контроллер узла USB также имеет драйвер функции. Драйвер функции для тостера косвенно взаимодействует с тостером, отправив запрос драйверу функции для контроллера узла USB. Драйвер функции для контроллера узла USB затем взаимодействует напрямую с оборудованием контроллера узла USB, который взаимодействует с тостером.
Как уважаемый хабрапользователь наверняка знает, «драйвер устройства» — это компьютерная программа управляющая строго определенным типом устройства, подключенным к или входящим в состав любого настольного или переносного компьютера.
Основная задача любого драйвера – это предоставление софтового интерфейса для управления устройством, с помощью которого операционная система и другие компьютерные программы получают доступ к функциям данного устройства, «не зная» как конкретно оно используется и работает.
Обычно драйвер общается с устройством через шину или коммуникационную подсистему, к которой подключено непосредственное устройство. Когда программа вызывает процедуру (очередность операций) драйвера – он направляет команды на само устройство. Как только устройство выполнило процедуру («рутину»), данные посылаются обратно в драйвер и уже оттуда в ОС.
Любой драйвер является зависимым от самого устройства и специфичен для каждой операционной системы. Обычно драйверы предоставляют схему прерывания для обработки асинхронных процедур в интерфейсе, зависимом от времени ее исполнения.
Любая операционная система обладает «картой устройств» (которую мы видим в диспетчере устройств), для каждого из которых необходим специфический драйвер. Исключения составляют лишь центральный процессор и оперативная память, которой управляет непосредственно ОС. Для всего остального нужен драйвер, который переводит команды операционной системы в последовательность прерываний – пресловутый «двоичный код».
Как работает драйвер и для чего он нужен?
Основное назначение драйвера – это упрощение процесса программирования работы с устройством.
Он служит «переводчиком» между хардовым (железным) интерфейсом и приложениями или операционными системами, которые их используют. Разработчики могут писать, с помощью драйверов, высокоуровневые приложения и программы не вдаваясь в подробности низкоуровневого функционала каждого из необходимых устройств в отдельности.
Как уже упоминалось, драйвер специфичен для каждого устройства. Он «понимает» все операции, которые устройство может выполнять, а также протокол, с помощью которого происходит взаимодействие между софтовой и железной частью. И, естественно, управляется операционной системой, в которой выполняет конкретной приложение либо отдельная функция самой ОС («печать с помощью принтера»).
Если вы хотите отформатировать жесткий диск, то, упрощенно, этот процесс выглядит следующим образом и имеет определенную последовательность: (1) сначала ОС отправляет команду в драйвер устройства используя команду, которую понимает и драйвер, и операционная система. (2) После этого драйвер конкретного устройства переводит команду в формат, который понимает уже только устройство. (3) Жесткий диск форматирует себя, возвращает результат драйверу, который уже впоследствии переводит эту команду на «язык» операционной системы и выдает результат её пользователю (4).
Как создается драйвер устройства
Для каждого устройства существует свой строгий порядок выполнения команд, называемой «инструкцией». Не зная инструкцию к устройству, невозможно написать для него драйвер, так как низкоуровневые машинные команды являются двоичным кодом (прерываниями) которые на выходе отправляют в драйвер результат, полученный в ходе выполнения этой самой инструкции.
При создании драйвера для Линукса, вам необходимо знать не только тип шины и ее адрес, но и схематику самого устройства, а также весь набор электрических прерываний, в ходе исполнения которых устройство отдает результат драйверу.
Написание любого драйвера начинается с его «скелета» — то есть самых основных команд вроде «включения/выключения» и заканчивая специфическими для данного устройства параметрами.
И чем драйвер не является
Часто драйвер устройства сравнивается с другими программами, выполняющими роль «посредника» между софтом и/или железом. Для того, чтобы расставить точки над «i», уточняем:
- Драйвер не является интерпретатором, так как не исполняется напрямую в софтовом слое приложения или операционной системы.
- Драйвер не является компилятором, так как не переводит команды из одного софтового слоя в другой, такой же.
Ну и на правах рекламы – вы всегда знаете, где скачать новейшие драйвера для любых устройств под ОС Windows.
«Слетели драйвера», «У меня нет драйверов на принтер», «Видеокарте нужны драйвера» — если вам непонятно, что это значит и на что влияют драйверы, то эта статья для вас.
Что такое драйвер
Драйвер — это программа, которая работает как инструкция для операционной системы. Драйвер объясняет операционке, как пользоваться каким-то устройством.
Устройство — это то, что физически подключается к компьютеру:
- видеокарта,
- мышь,
- криптотокен,
- монитор,
- сканер,
- джойстик для игр.
Драйвер рассказывает компьютеру, как этим железом пользоваться, что оно умеет, какие команды понимает и как это железо могут использовать другие программы.
👉 Технически драйвер — это программа, которая висит в памяти компьютера всё время, пока компьютеру нужно это устройство.
Известное и неизвестное железо
Операционная система в компьютере знает и умеет многое, в том числе и работать со стандартным оборудованием. Стандартным — это значит тем, которое предоставляет стандартные возможности.
Например, клавиатура, мышь или веб-камера — это стандартное оборудование, потому что независимо от производителя они делают примерно одно и то же.
Разработчики операционной системы знают про такое оборудование, поэтому могут написать стандартные драйверы, которые подойдут к большинству устройств. Именно поэтому мы можем купить в магазине новую мышь и просто подключить её к компьютеру без установки дополнительных программ — операционная система сама разберётся, что делать.
Но бывает так, что разработчики добавили в устройство нестандартные возможности: переназначение сочетаний клавиш, сделали мышь с несколькими колёсиками или встроенный лазерный дальномер в видеокамеру. В этом случае компьютер не разберётся, как этим всем пользоваться, потому что в стандартных драйверах про это ничего нет.
В таких случаях разработчики устройств пишут свой драйвер, который объяснит компьютеру, как пользоваться всеми возможностями устройства. Этот драйвер нужно будет установить.
Сложное оборудование
Ещё бывает так, что оборудование хоть и стандартное, но сложное, например, видеокарта или принтер. Каждый производитель добавляет свои функции и технологии, которые считает нужными, и чаще всего они не совпадают с другими. Если подключить такое устройство к компьютеру, то компьютер, скорее всего, разберётся, что именно в него воткнули, то как с этим работать — неизвестно.
Здесь тоже нужны драйверы — они идут или в комплекте с устройством на компакт-диске или их качают с официального сайта производителя. Чем сложнее устройство, тем больше вероятность, что без установки дополнительных драйверов оно работать не будет.
Например, если у вас навороченная видеокарта, вы вставляете её в компьютер и сначала видите странную огромную картинку с низким разрешением. Это значит, что компьютер пока не нашёл драйверов на эту карточку и запустил её в «режиме совместимости» — то есть в том режиме, в котором он точно сможет ей управлять. Но возможности видеокарты будут сильно порезаны, пока мы не установим нужные нам драйверы.
Что значит «слетели драйвера»?
Это значит, что компьютер не может найти файлы с инструкциями от какого-то устройства. Так бывает при обновлениях системы, заражении вирусом или просто кто-то случайно мог удалить нужные файлы или папку целиком.
Решение простое: берёте заново драйвер с официального сайта или тот, который шёл в комплекте с устройством, и запускаете программу-установщик заново. А она уже сама разберётся, каких файлов не хватает, и настроит всё заново.
Драйверы нужны только на Windows?
Драйверы нужны на всех компьютерах и для всех операционных систем. Но некоторые операционки идут с кучей драйверов в комплекте, а у других этот набор более скромный.
Общее правило для 2021 года такое: большая часть оборудования, которое нужно для обычной офисной работы, подключится к любому компьютеру без необходимости что-то устанавливать. Операционка сама поймёт, что это за устройство, и, скорее всего, у неё уже будут драйверы.
А вот какое-то более сложное оборудование (например, профессиональная аудиокарта или видеокамера) потребуют установки драйверов от производителя.
В чём проблема с драйверами
Проблема в том, что часто производители не делают новые драйверы для старого оборудования. Например:
Есть диджейский контроллер Numark NS7 — это профессиональное оборудование для диджеев и артистов, оно стоит дорого и нужно примерно 100 тысячам человек на всей планете.
Когда контроллер только вышел, компания Numark выпускала драйвера на все свежие операционные системы, проблем с совместимостью не было.
Потом аппарат сняли с производства, поддержку прекратили. Последняя версия драйверов, которую выпустил Numark, — для Windows 10 и MacOS 10.12 (Sierra). С тех пор у Windows вышло большое обновление до 11, а MacOS обновился раз пять. Причём последние две версии сделаны для процессоров Apple, и уже нет надежды, что Numark обновит драйверы для этой архитектуры.
Так что, если вам достался этот редкий профессиональный прибор, вы вынуждены сидеть на древней MacOS Sierra, которая стремительно перестаёт поддерживаться современным софтом.
Читайте также: