Причины ошибок при загрузке Windows 7 и методы их устранения

Настройка программы начальной загрузки компьютера коды ошибок

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

Неполадки оборудования

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

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

не загружается windows 7

На проблемы с винчестером или его контроллером могут указывать следующие данные:

Ошибки памяти часто дают о себе знать такими сообщениями:

Часто неисправность ОЗУ проявляется разнообразными ошибками, которые могут случиться в любой момент при запуске и работе компьютера.

Устранить несложный аппаратный сбой часто помогает восстановления BIOS Setup к настройкам по умолчанию или, как говорят, сброс на дефолт. Это можно сделать несколькими путями: используя собственную опцию BIOS, методом переключения специальной перемычки на мат. плате или временным обесточиванием микросхемы CMOS (места хранения BIOS).

Чтобы вернуть BIOS Setup настройки по дефолту, используя его собственную опцию, нужно:

ошибка при запуске windows 7

Другие способы – это переключение специального джампера для сброса BIOS в положение CLR CMOS (варианты названия – CCMOS, Clear CMOS, Clear CMOS, Clear RTC и т. д.) или временное извлечение батарейки на плате. На некоторых мат. платах для этого есть специальная кнопка.

исправить ошибки windows 7

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

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

Использование безопасного режима Windows 7

В ряде случаев сбой при запуске возникает только в нормальном режиме, а в safe mode (безопасный режим) система загружается без проблем. Если это ваш случай – используем эту возможность.

Чтобы попасть в безопасный режим, перед началом запуска Windows нажмите несколько раз клавишу F8. Когда увидите на экране такой список, выберите из него нужный пункт:

не загружается windows 7

После загрузки рабочего стола нужно открыть Пуск, зайти в меню “Все программы”, открыть папку “Стандартные”, потом “Служебные” и выбрать оттуда “Восстановление системы”.

ошибка при запуске windows 7

Этот инструмент Windows 7 поможет исправить ошибки при запуске, возникшие из-за повреждения системного реестра, удаления или повреждения важных файлов, установки сбойных драйверов, вирусных атак и прочего, связанного с системой и программным обеспечением.

исправить ошибки windows 7

Дополнительно можно воспользоваться системой автоматического поиска проблем и их решений. Для этого:

не загружается windows 7

ошибка при запуске windows 7

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

Среда восстановления

Если система не загружается в safe mode, если средство восстановления не находит ни одной контрольной точки или не работает, остается еще одна возможность – Windows RE. Windows RE – это дополнение к Windows 7, среда восстановления, которая работает независимо от того, загружается основная система или не загружается. Встроенные в Windows RE инструменты дают возможность:

Чтобы попасть в среду Windows RE, нужно из меню F8 выбрать пункт “Устранение неполадок компьютера”.

не загружается windows 7

Дойдя до окна “Параметры восстановления” вы получите возможность выбора нужного инструмента.

Восстановление запуска

Чтобы выявить и устранить проблемы из-за которых Windows 7 не загружается, выберите из списка параметров первую опцию: “Восстановление запуска”. Этот инструмент автоматически проверит и исправит MBR (главную загрузочную запись), состояние ответственных за загрузку разделов в реестре и системных файлов. Чаще всего ошибки при запуске с Windows 7 с его помощью успешно решаются.

ошибка при запуске windows 7

Если восстановление запуска не помогло решить проблему, можно воспользоваться всё тем же уже знакомым инструментом для отмены последних изменений – “Восстановлением системы”. Бывает, что в безопасном режиме Windows не видит ни одной контрольной точки, а в среде Windows RE – видит.

Для запуска этого средства в “Параметрах восстановления” предназначен второй сверху пункт.

исправить ошибки windows 7

Если у вас есть архивный образ, созданный в период стабильной работоспособности Windows и программ, вы можете прямо здесь выполнить восстановление из него. Для этого подключите к компьютеру накопитель с образом, выберите из списка параметров восстановления третий пункт – “Восстановление образа системы” и следуйте инструкциям мастера.

не загружается windows 7

Параметр “Диагностика памяти Windows” поможет выявить проблемы с оперативной памятью при подозрениях на ее неисправность. Выше мы перечислили, какие ошибки при запуске компьютера могут быть признаком проблем с ОЗУ. Не исключено, что как раз из-за них ваша система не загружается.

Кроме сбоев памяти, проблемы при запуске может вызывать и жесткий диск, а точнее – ошибки файловой системы и “битые” сектора. Среда восстановления также позволяет провести поиск таких неполадок и устранить их. Для этого через командную строку нужно запустить системную утилиту chkdsk с параметрами /f и /r, что означает выполнить поиск и исправление ошибок, а также восстановить содержимое сбойных секторов, и дождаться результатов. Вмешательства пользователя в эту процедуру не требуется – она полностью автоматическая.

ошибка при запуске windows 7

Ну и напоследок – если вы подозреваете, что система не загружается из-за вирусного заражения, среда восстановления позволяет запускать и антивирусные средства.

Для этого запустите командную строку, а через нее откройте проводник.

исправить ошибки windows 7

не загружается windows 7

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

Ошибки при загрузке Windows 10: как устранить

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

Ошибки при загрузке Windows 10: как устранить

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

Чтобы выявить и устранить ошибки загрузки, необходимо проанализировать состояние компьютера перед сбоем. Система перестала запускаться:

Обращая внимание на вышеперечисленные факторы, можно наиболее точно установить и устранить ошибку при загрузке Windows 10.

Windows 10 при загрузке выдает ошибку

Самый популярный вариант сбоя, когда при включении ПК не запускается Windows 10, а на мониторе выплывает окно с сообщением об ошибке. Далее появляется синий экран с извещением «Компьютер запущен некорректно» и двумя вариантами решения неполадки.

Ошибки при загрузке Windows 10: как устранить

Такая ошибка сигнализирует о том (но не всегда), что были повреждены системные файлы из-за их удаления, установок и «снесения» приложений (особенно – антивирусных), применение программных продуктов для очистки реестра и ПК.

Устранение этой неполадки заключается в восстановлении реестра и поврежденных системных файлов Windows 10. Сделать это можно так:

После этого необходимо сделать переустановку Windows 10 с сохранением системных файлов. Однако, программы после этого действия не сохранятся.

Код ошибки 0x000000f при загрузке Windows 10

Система Windows 10 может не загружаться по разным причинам. Одной из системных проблем вашего ПК возможна ошибка под кодом 0x000000f, которая возникает после очистки его от пыли.

Ошибки при загрузке Windows 10: как устранить

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

Вы можете после этого хоть 100 раз систему перезапускать или проводить другие действия с памятью или материнской платой, но ошибка будет все время повторяться. Причина ее кроется в синдроме спонтанных обоев в настройках BIOS, то есть «слетела» правильность настройки устройств, при помощи которых проводится загрузка Windows 10.

Алгоритм действий по устранению этой ошибки следующий:

После этого произойдет перезагрузка ПК без возникновения ошибки 0x000000f.

Ошибка при загрузке BOOT Windows 10

Зачастую пользователи при запуске системы Windows 10 могут на мониторе компьютера наблюдать синий экран с извещением «inaccessible boot device».

Ошибки при загрузке Windows 10: как устранить

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

Чтобы исправить данную ошибку, нужно знать после чего она возникла. Причины могут быть самые разные – после сброса системы, изменения структуры разделов на диске, подключения другого жесткого диска или после обновления BIOS.

Прежде, чем начать исправлять ошибку при загрузке BOOT Windows 10, рекомендуется сделать попытку перезагрузить компьютер таким способом:

Если ошибка появилась после установки обновлений или сброса Windows 10, то ее можно исправить таким образом:

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

Далее нужно перезагрузить компьютер в обычном режиме.

При загрузке Windows 10 возникает ошибка и ПК перезагружается

Причиной того, что при загрузке Windows 10 возникает ошибка и компьютер самостоятельно перезагружается, является неудачное автоматическое исправление загрузки. Решить данную проблему можно только со среды восстановления с загрузочного диска или флешки методом, описанным выше. Когда вы загрузитесь в среду восстановления Windows, проведите такую же процедуру устранения ошибки, как при «Компьютер запущен некорректно».

Рассмотрим обозначение кодов ошибок Windows 10:

Пользователь зачастую сталкивается с различными ошибками при загрузке Windows 10, которые вполне можно решить своими силами. Главное – вовремя разобраться и выявить причины сбоя системы при загрузке.

Ошибка 0*80072f76 в Windows 10

Признаками возникновения ошибки под кодом 0*80072f76 в Windows 10 зачастую являются медленная работа компьютера и слабое.

О работе ПК ч.3: От включения до полной загрузки Windows 10

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

Старт системы

Полностью компьютер выключен когда он отключен от питания и конденсаторы на материнской плате разрядились. До эры смартфонов мобильные телефоны часто глючили и если перезагрузка не лечила проблему, то приходилось доставать батарею и ждать 10 секунд, потому что сбрасывалось программное состояние ОС, в то время как чипы на материнской плате и контроллеры устройств оставались активными сохраняя состояние, драйвера ОС к ним просто реконнектились. 10 секунд — время на разрядку конденсаторов, состояние чипов сбрасывается только при полном отключении.
Если же ПК подключен к розетке или батарее, то он находится в режиме Stand-By, это значит что по шине питания подаётся маленькое напряжения (5В) от которого запитываются некоторые чипы на материнке. Как минимум это системный контроллер, по сути это мини-компьютер запускающий большой компьютер. Получив уведомление о нажатии кнопки Power он просит блок питания/батарею подать больше напряжения и после инициализирует весь чип-сет, в том числе и процессор. Инициализация включает в себя перекачку кода и данных прошивки материнки (BIOS/UEFI) в оперативную память и настройку CPU на её исполнение.
Думать что кнопка Power это рубильник который подаёт электричество на CPU и тот начинает исполнять с заранее известного адреса прошивку BIOS неправильно. Возможно старые компьютеры так и работали. Кнопка включения находится на своей плате, вместе со светодиодами состояний и к материнке она подключается через специальный разъём. На картинке ниже видны контакты для кнопки Power, Reset, а также светодиодов с состоянием Power и чтения жёсткого диска. Нажатие кнопки включения переводится в сигнал на контакты материнки, откуда он достигает системный контроллер.

Контакты на материнке для подключения кнопки включения, светодиодов состояния Power, жёсткого диска и динамиков.

Плата ноутбука с кнопкой включения и светодиодом состояния

Прикладная иллюстрация как блок питания получает сигнал от материнки на включение. Если вы задумаете установить мощную видеокарту (Nvidia 2070 S) на офисный ПК, то просто вставить её недостаточно, потому как она требует питание в 600W, в то время как такой ПК имеет блок на

500W. Первое что придёт в голову – купить новый блок питания на 650W с отдельной линией для видеокарты. Но и здесь будут разочарования, потому как разъёмы материнки будут не совпадать с разъёмами БП, а если его отдельно воткнуть в розетку и подключить к видюхе тоже ничего не будет – в блоке питания вентилятор не крутится и изображения нет. Так происходит, потому что БП должен получить сигнал от материнки на полное включение. Очевидное решение – новая материнка с совместимыми разъёмами, однако она стоит

$300. Есть решение проще, хоть оно и вызывает опасения пожаробезопасности. Берём скрепку, разгибаем и вставляем в зелёный (PS_ON) и один из чёрных пинов (COM). Теперь всё должно работать.

Поиск загрузчика ОС

Есть два вида прошивки материнки – BIOS (Basic Input Output System) на старых машинах и UEFI (Unified Extensible Firmware Interface) на новых. Windows 10 поддерживает обе и абстрагирует различия между ними. UEFI правильней называть ОС чем прошивкой, потому как он предлагает больше возможностей, к примеру богатый графический интерфейс вместо текстового, наличие мышки, больший объём доступной памяти, улучшенная модель безопасности и валидации файлов ОС, взаимодействие с железом через API, вместо прерываний как в BIOS.

Пример экрана монитора BIOS.

Программа BIOS хранится на отдельном чипе, подключенном к Южному мосту. Этот чип можно достать и перепрошить новой программой, по факту это просто носитель памяти, а не самостоятельный микрокомпьютер.

Настройки BIOS (системное время, например), хранятся на другом чипе который как правило находится возле круглой батарейки, которая на самом деле является литиевым аккумулятором, подзаряжающимся во время работы ПК. Называется он CMOS, что означает Complementary Metal Oxide Semiconductor, а по-русски просто — КМОП, что есть комплементарная структура металл-оксид-полупроводник.

Если всё прошло успешно, BIOS начинает процесс поиска загрузчика ОС. Для этого он начинает просматривать все подключенные к материнской плате жёсткие диски. Данные на физических дисках адресуются в единицах называемых сектор, обычно он 512 байт, однако современный стандарт – 4096 байт. Установщик Windows в самый первый сектор на диске записывает специальный программный код и данные о разделах. Этот сектор называется Master Boot Record. Диск разбивается на разделы (partitions), отформатированный своей файловой системой. Максимум 4 раздела, каждый из который может быть расширенным (extended partition), такой можно рекурсивно делить на 4 раздела и теоретически их число не ограничено. Как только BIOS находит Master Boot Record он считывает оттуда код и передаёт ему управление. Этот код поочередно просматривает данные о разделах и находит тот который помечен как активный, в нём находится код загрузчика Windows (Это не раздел с C:\Windows\System32!), этот раздел называется system partition. Как правило он занимает 100Мб и скрыт от пользователя. В первом секторе этого раздела хранится загрузочный код, которому передаётся управление. Это volume boot sector, код в нём ищет файл Bootmgr, с которого и начинается процесс загрузки Windows. Файл Bootmgr создан через соединение в один файлов Startup. com и Bootmgr. exe.

Запуск на UEFI

Пример экрана загрузки UEFI

BIOS существует больше 30 лет и в попытках исправить его недостатки компания Intel в 1998 году создала стандарт Intel Boot Initiative, позже переименованный в EFI и в 2005 году пожертвованный организации EFI Forum. Недостатки BIOS:
• Работает только в 16-битном режиме
• Может адресовать только 1Mb оперативной памяти
• Часто имеет проблемы совместимости
• MBR ограничен только четырьмя главными разделами диска
• Диск с ОС не может быть больше чем 2.2Tb.
• Имеет очень ограниченные возможности для валидации загрузчика ОС.
На смену BIOS пришёл UEFI, по сути это миниатюрная ОС которая может работать и в 32-bit и в 64-bit. Для совместимости есть опция Compatibility Support Module, которая включается в настройках и эмулирует работу BIOS.

Инициализация ядра

Запуск подсистем – SMSS, CSRSS, WinInit

SMSS. exe отличается от пользовательских процессов, это нативный процесс и это даёт ему дополнительные полномочия. SMSS. exe работает с ядром в обход Windows API, он использует то что называется Native API. Windows API – обёртка вокруг Native API. SMSS. exe первым делом запускает подсистему Windows (CSRSS. exe – Client Server Runtime Sub System) и заканчивает инициализацию реестра.

Процесс и потоки SMSS. exe помечены как критические, это значит что если они неожиданно завершаться, к примеру из-за ошибки, это приведёт к падению системы. Для общения с подсистемами, к примеру вызову API создающему новую сессию, SMSS создаёт ALPC-порт с именем SmApiPort. Загружаются из реестра переменные среды окружения, запускаются программы такие как Check Disk (autochk. exe, эти программы записаны в реестре HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute). SMSS. exe запускается для каждой пользовательской сессии. Глобальные переменные (очередь сообщений например) у каждой сессии своя за счёт механизма виртуальной памяти. В Windows есть контексты потока, процесса и сессии. Каждый SMSS. exe запускает свой экземпляр подсистемы, на данный момент это только CSRSS. exe (Windows), в прошлом поддерживались операционные системы OS/2 (os2ss. exe) и POSIX (psxss. exe), но эта идея была неудачной. Самый первый SMSS. exe засыпает в ожидании процесса WinInit. exe. Остальные экземпляры вместо этого создают процесс WinLogon который показывает UI для входа.

Дерево процессов выглядит следующим образом, на нём можно увидеть кто и кого создал (показаны не все процессы, может немного отличаться от последний версий Windows).

Где здесь клавиатура?

Во время запуска ядро Windows считывает из реестра информацию о контроллере системной шины, как правило это шина PCI (реже MSI), к ней подключены контроллеры портов ввода-вывода, в том числе и USB, PS/2. Информация о нём записывается во время установки Windows. Система загружает для него драйвер и рекурсивно обходит все порты так же загружая для каждого из них свой драйвер. Драйвера могут комбинироваться в узлы (driver node), к примеру драйвер клавиатуры, будет соединён с драйвером порта PS2. А вот порт USB сложнее — сначала драйвер порта, потом драйвер для работы с протоколом HID и только потом клавиатура.

Каждый порт контроллируется своим чипом, который мониторит подключение, принимает/отправляет сигналы между CPU и устройством. Если чип-сет Южный мост не встроен в CPU, как это часто делают в ноутбуках, а существует отдельным чипом на материнке, то правильней говорить: сигнал между Южным мостом и контроллером порта. Чип контроллирующий порт имеет выделенную линию с контроллером прерываний (PIC или APIC), по которой он может попросить обратить на себя внимание CPU, к примеру считать данные от клавиатуры (порт PS/2, с USB другая история). Поскольку ОС загрузила для порта драйвер, она может отдавать ему команды, читать и отправлять данные. В нашем примере был загружен драйвер из C:\Windows\System32\i8042prt. sys. Давайте вспомним предыдущую статью. В старых компьютерах с PIC на чипе Intel 8259 было 15 линий прерываний, где клавиатура была подключена к ножке IRQ1, таймер IRQ0, а мышка к IRQ12, который на самом деле был пятой ножкой второго чипа 8259, который мультиплексировал свои прерывания через ножку IRQ2 первого контроллера. В современных PIC могут быть 255 контактов для сигналов прерываний. Во время загрузки ОС программирует APIC/PIC возвращать определённое число когда скажем пришло прерывание от порта клавиатуры или USB и по этому номеру CPU находит в таблице векторов прерываний функцию которую надо выполнить. Номер прерываний определяют HAL и Plug’n’Play Manager. Контроллер прерываний ищет сигнал на своих ножках в определённом порядке, к примеру в бесконечном цикле проверяет напряжение на ножках от 1 до MAX_PIN. Этот порядок определяет приоритет, к примеру клавиатура будет замечена раньше мышки, а таймер раньше клавиатуры. Чтобы не зависеть от особенностей работы контроллеров прерываний Windows абстрагирует концепцию IRQ (Interrupt Request) в IRQL (Interrupt Request Level). Будь у контроллера прерываний хоть 15 хоть 255 линий они все будут отображены на 32 IRQL для x86 и 15 IRQL для x64 и IA64.

Механизм IRQL реализовывается на уровне софта в Hardware Abstraction Layer (HAL. dll), а не железа. В Windows системах есть драйвер шины (bus driver), который определяет наличие устройств подключенных к шинам – PCI, USB и др. и номера прерываний которые могут быть назначены каждому устройству. Драйвер шины сообщает эту информацию Plug and play manager, который уже решает какие номера прерываний назначить каждому устройству. Далее арбитр прерываний внутри PnP Mgr (PnP interrupt arbiter) устанавливает связи между IRQ и IRQL.

Когда приходит прерывание от клавиатуры, любой исполняемый в данный момент поток (это может быть ваша программа) назначается на его обработку. Interrupt dispatcher повышает приоритет IRQL CPU до одного из уровней Device1-DeviceN. После этого менеджер виртуальной памяти не сможет найти страницу если она не загружена в RAM (не сможет обработать Page Fault), планировщик потоков не сможет прервать выполнение, потому что они все работают с меньшим уровнем IRQL. Главная задача драйвера клавиатуры в этот момент считать полученные данные и сохранить их для дальнейшей обработки. Данные записываются в объект типа _DPC (Deferred Procedure Call), который сохраняется в список DPC потока (что-то вроде std::list<DPC>, в ядре ОС вместо массивов используются связанные списки). Как только прерывания от всех внешних устройств обработаны, IRQL потока понижается до уровня DPC в котором и производится обработка отложенных процедур (DPC). В коде обработчика DPC для клавиатуры вызывается функция из драйвера клавиатуры Kbdclass. sys:

Так вот, драйвер клавиатуры (kbdclass. sys) получает данные от порта (USB, PS2) через прерывание и записывает их через WriteFile, компонент внутри ядра Windows просыпается, считывает их используя API ReadFile и добавляет в очередь сообщений с клавиатуры. API для работы с файлом могут использоваться для чтения данных с драйверов. С этого момента начинается обработка данных стеком ввода Windows, об этом в следующей статье.

Если у вас есть ПК с PS2 портом и вы умеете пользоваться WinDbg в режиме ядра, то можете легко найти обработчик прерываний клавиатуры напечатав команду !idt, которая выведет на экран всю таблицу векторов прерываний. Прерывание вклинивается в ход выполнения программы, слово вектор здесь подразумевает направление, направление исполнения программы. WinDbg был сделан специально для отладки Windows, самая последняя версия называется WinDbgX. Он имеет текстовый интерфейс, который отпугивает людей привыкших к Visual Studio, однако предоставляет гораздо больше возможностей, в частности исполнение скриптов. Прерывание фиолетового порта PS2 выделено красным. Функция которая его обрабатывает называется I8042KeyboardInterruptService, которая находится в файле i8042prt. sys.

Сейчас возникает вопрос, откуда у обработчика прерываний аргумент? Кто его передаёт? Ведь CPU ничего не знает о нём. Если поставите в неё breakpoint, то удивитесь ещё больше увидев несколько функций выше по стеку:

0: kd> kC
# Call Site
00 i8042prt! I8042KeyboardInterruptService
01 nt! KiCallInterruptServiceRoutine
02 nt! KiInterruptSubDispatch
03 nt! KiInterruptDispatch
04 nt! KiIdleLoop

Пару слов о USB

Ознакомление с работой порта USB потребовало бы отдельной статьи описывающей его работу и плюс описание обработки данных HID на Windows. Это очень сильно усложнило бы материал, к тому же уже есть хорошие статьи по теме, поэтому PS2 идеальный пример из-за своей простоты.

USB создавался как универсальный порт для всех устройств, будь то клавиатура, фотоаппарат, сканнер, игровой руль с педалями, принтер и пр. Вдобавок он поддерживает вложенность портов – USB материнки => монитор с USB => клавиатура с USB к которой подключена мышка, флешка и USB-hub к которому подключен жёсткий диск. Взглянув на контакты USB 2.0 вы увидите что они не заточены под передачу каких-то определённых данных, как у PS2. Их всего четыре – витая пара для передачи битов данных, плюс и минус питания.

Провода кабеля USB 2.0

USB 3.0 быстрее за счёт дополнительных пяти контактов. Как видите там нету линии CLOCK для синхронизации, поэтому логика передачи данных сложнее. Слева USB 2.0 и справа USB 3.0 для сравнения.

Все данные передаются через протокол HID (Human Interface Device), который описывает форматы, порядок взаимодействия и передачи данных и всё остальное. Стандарт USB 2.0 занимает 650 страниц, документ HID Class Specification, описывающий работу устройств (мыши, клавиатуры и пр) – 97 страниц, их рекомендуется изучить если вы работаете с USB.

Первым делом подключенное устройство должно рассказать о себе, для этого оно отправляет несколько структур данных, в которых указывается ID устройства и ID производителя по которым Plug’n’Play manager может найти в реестре информацию, загрузить и соединить драйвера. USB устройства пассивны, т. е. хост должен сам с определённым интервалом проверять наличие данных. Частота опроса и размер пакета данных задаются в одном из дескрипторов устройства USB. Максимальный размер пакета – 64 байта, что для информации о нажатых клавишах более чем достаточно.

В Windows есть встроенная поддержка HID, она не такая простая как связь драйвера порта PS2 с драйвером клавиатуры, потому что драйвер HID должен уметь обрабатывать все поддерживаемые протоколом сценарии. Вне зависимости от провайдера данных — порты PS2, USB или Remote Desktop или виртуальная машина – на самом верху driver node будет находится Kbdclass, от которого ядро ОС и будет получать информацию. Уведомление о подсоединении клавиатуры будет обрабатываться через Plug’n’Play Manager, так что для ядра Windows не имеет значение какой порт или источник данных от устройства используется.

Источники:

https://itpotok. ru/prichiny-oshibok-pri-zagruzke-windows-7-i-metody-ix-ustraneniya/

https://howwindows. ru/errors/oshibki-pri-zagruzke-windows-10-kak-ustranit/

https://habr. com/ru/post/518972/

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: