Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Драйвер — это программный компонент, позволяющий операционной системе и устройству взаимодействовать. Например, когда приложению нужно считывать данные с устройства, она вызывает функцию, реализованную операционной системой. Затем операционная система вызывает функцию, реализованную драйвером. Драйвер, как правило, разработанный производителем устройства, знает, как взаимодействовать с оборудованием устройства для получения данных. Когда драйвер получает данные, он возвращает его операционной системе, которая затем возвращает его приложению.
Расширение определения
Это объяснение упрощает концепцию драйверов. Ниже приведены некоторые дополнительные моменты, которые следует рассмотреть:
Изготовитель устройства не всегда разрабатывает драйвер. Если устройство соответствует опубликованному стандарту оборудования, корпорация Майкрософт может написать драйвер, поэтому конструктор устройств не должен предоставлять его.
Не все драйверы взаимодействуют напрямую с устройством. Часто в запросе ввода-вывода участвуют несколько драйверов, слоисто расположенных в стеке драйвера и.
Обычный способ визуализации стека — с первым участником в верхней части и последним участником внизу, как показано на этой схеме. Некоторые драйверы в стеке изменяют запрос с одного формата на другой. Эти драйверы не взаимодействуют напрямую с устройством. Вместо этого они изменяют запрос и передают его драйверам, которые ниже в стеке.
драйвер функции: драйвер, который взаимодействует непосредственно с устройством, называется драйвером функции .
драйвер фильтра: драйверы, которые выполняют вспомогательные обработки, называются драйверами фильтров .
Дополнительные сведения см. в разделе стеки драйверов.
Некоторые драйверы фильтров отслеживают и записывают сведения о запросах ввода-вывода, но не участвуют в них. Например, некоторые драйверы фильтров служат проверятелями, чтобы убедиться, что другие драйверы в стеке обрабатывают запрос ввода-вывода правильно.
Чтобы уточнить определение, драйвер является любым программным компонентом, который наблюдает или участвует в обмене данными между операционной системой и устройством.
Драйверы программного обеспечения
Это расширенное определение является более точным, но по-прежнему неполным. Некоторые драйверы вообще не связаны с каким-либо аппаратным устройством.
Если необходимо написать средство, которое обращается к основным структурам данных операционной системы, можно разделить средство на два компонента. Первый компонент выполняется в пользовательском режиме и представляет пользовательский интерфейс. Второй компонент выполняется в режиме ядра и обращается к данным основной операционной системы. Компонент, работающий в пользовательском режиме, называется приложением. Компонент, который выполняется в режиме ядра, называется драйвером программного обеспечения. Программный драйвер не связан с аппаратным устройством.
На этой схеме показано приложение пользовательского режима, взаимодействующее с драйвером программного обеспечения в режиме ядра.
схема
Драйверы программного обеспечения всегда выполняются в режиме ядра. Они в основном записываются для доступа к защищенным данным только в режиме ядра. Не всем драйверам устройств нужен доступ к данным и ресурсам в режиме ядра, поэтому некоторые драйверы устройств выполняются в пользовательском режиме.
Дополнительные сведения о режимах процессора см. в разделе "Режим пользователя" и "Режим ядра".
Водители автобусов
Другим типом водителя является водитель автобуса . Чтобы понять драйверы шины, необходимо понять узлы устройств и дерево устройств.
Сведения о деревьях устройств, узлах устройств и драйверах шины см. в разделе "Узлы устройств" и стеки устройств.
Дополнительные сведения о драйверах функций
Объяснение на данный момент упрощает драйвер функции. Объяснение до сих пор указывает, что драйвер функции является драйвером, который взаимодействует непосредственно с устройством. Эта инструкция относится к устройству, которое подключается непосредственно к шине взаимодействия периферийных компонентов (PCI). Драйвер функции для устройства PCI получает адреса, сопоставленные с ресурсами порта и памяти на устройстве. Драйвер функции напрямую взаимодействует с устройством, записывая данные по этим адресам.
Во многих случаях устройство не подключается непосредственно к шине PCI. Вместо этого устройство подключается к адаптеру шины хоста, подключенному к шине PCI. Например, USB-тостер подключается к адаптеру шины узла, который называется контроллером USB-узла. Этот контроллер подключен к шине PCI. Usb-тостер имеет драйвер функции, а контроллер USB-узла также имеет драйвер функции.
Функциональный драйвер тостера взаимодействует с тостером косвенно, отправляя запрос функциональному драйверу хост-контроллера USB. Затем драйвер функции для контроллера USB-узла взаимодействует непосредственно с оборудованием контроллера USB-узла, который взаимодействует с тостером.
Связанный контент
- Стеки драйверов
- Узлы устройств и стеки устройств
- Режим пользователя и режим ядра