Скачать classpnp sys для windows 7 64 с официального сайта

Загрузите правильную версию файла Classpnp.sys, следуйте инструкциям и исправьте ошибки, связанные с Classpnp.sys. Изучите 4 надежных метода.

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

Файл был разработан для использования с программным обеспечением . Здесь вы найдете подробную информацию о файле и инструкции, как действовать в случае ошибок, связанных с Classpnp.sys на вашем устройстве. Вы также можете скачать файл Classpnp.sys, совместимый с устройствами Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows XP, которые (скорее всего) позволят решить проблему.

For Windows
Совместим с: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows XP

Популярность пользователя

Исправьте ошибки Classpnp.sys

  • 1 Информация о файле Classpnp.sys
  • 2 Ошибки, связанные с файлом Classpnp.sys
  • 3 Как исправить ошибки, связанные с Classpnp.sys?
    • 3.1 Сканирование на наличие вредоносных программ
    • 3.2 Обновление системы и драйверов
    • 3.3 Инструмент проверки системных файлов
    • 3.4 Восстановление системы
  • 4 Скачать Classpnp.sys
    • 4.1 Список версий файла Classpnp.sys

Информация о файле

Основная информация
Имя файла Classpnp.sys
Расширение файла SYS
Описание SCSI Class System Dll
Программного обеспечения
программа Microsoft® Windows® Operating System
автор Microsoft Corporation
подробности
MIME тип application/octet-stream
Тип файла Driver
система Windows NT 32-bit
Авторские права © Microsoft Corporation. All rights reserved.
Набор символов Unicode
Языковая треска Neutral

Classpnp.sys

Наиболее распространенные проблемы с файлом Classpnp.sys

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

  • Classpnp.sys поврежден
  • Classpnp.sys не может быть расположен
  • Ошибка выполнения — Classpnp.sys
  • Ошибка файла Classpnp.sys
  • Файл Classpnp.sys не может быть загружен. Модуль не найден
  • невозможно зарегистрировать файл Classpnp.sys
  • Файл Classpnp.sys не может быть загружен
  • Файл Classpnp.sys не существует

Classpnp.sys

Error

Не удалось запустить приложение, так как отсутствует файл Classpnp.sys. Переустановите приложение, чтобы решить проблему.

OK

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

Как исправить ошибки Classpnp.sys всего за несколько шагов?

Ошибки файла Classpnp.sys могут быть вызваны различными причинами, поэтому полезно попытаться исправить их различными способами.

Шаг 1.. Сканирование компьютера на наличие вредоносных программ.

Virus Scan

Файлы Windows обычно подвергаются атаке со стороны вредоносного программного обеспечения, которое не позволяет им работать должным образом. Первым шагом в решении проблем с файлом Classpnp.sys или любыми другими системными файлами Windows должно быть сканирование системы на наличие вредоносных программ с использованием антивирусного инструмента.

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

Шаг 2.. Обновите систему и драйверы.

Windows Update

Установка соответствующих исправлений и обновлений Microsoft Windows может решить ваши проблемы, связанные с файлом Classpnp.sys. Используйте специальный инструмент Windows для выполнения обновления.

  1. Откройте меню «Пуск» в Windows.
  2. Введите «Центр обновления Windows» в поле поиска.
  3. Выберите подходящую программу (название может отличаться в зависимости от версии вашей системы)
  4. Проверьте, обновлена ​​ли ваша система. Если в списке есть непримененные обновления, немедленно установите их.
  5. После завершения обновления перезагрузите компьютер, чтобы завершить процесс.

Помимо обновления системы рекомендуется установить последние версии драйверов устройств, так как драйверы могут влиять на правильную работу Classpnp.sys или других системных файлов. Для этого перейдите на веб-сайт производителя вашего компьютера или устройства, где вы найдете информацию о последних обновлениях драйверов.

Шаг 3.. Используйте средство проверки системных файлов (SFC).

System File Checker

Проверка системных файлов — это инструмент Microsoft Windows. Как следует из названия, инструмент используется для идентификации и адресации ошибок, связанных с системным файлом, в том числе связанных с файлом Classpnp.sys. После обнаружения ошибки, связанной с файлом %fileextension%, программа пытается автоматически заменить файл Classpnp.sys на исправно работающую версию. Чтобы использовать инструмент:

  1. Откройте меню «Пуск» в Windows.
  2. Введите «cmd» в поле поиска
  3. Найдите результат «Командная строка» — пока не запускайте его:
  4. Нажмите правую кнопку мыши и выберите «Запуск от имени администратора»
  5. Введите «sfc / scannow» в командной строке, чтобы запустить программу, и следуйте инструкциям.

Шаг 4. Восстановление системы Windows.

Windows Recovery

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

  1. Откройте меню «Пуск» в Windows.
  2. Введите «Восстановление системы» в поле поиска.
  3. Запустите средство восстановления системы — его имя может отличаться в зависимости от версии системы.
  4. Приложение проведет вас через весь процесс — внимательно прочитайте сообщения
  5. После завершения процесса перезагрузите компьютер.

Если все вышеупомянутые методы завершились неудачно и проблема с файлом Classpnp.sys не была решена, перейдите к следующему шагу. Помните, что следующие шаги предназначены только для опытных пользователей

Загрузите и замените файл Classpnp.sys

Последнее решение — вручную загрузить и заменить файл Classpnp.sys в соответствующей папке на диске. Выберите версию файла, совместимую с вашей операционной системой, и нажмите кнопку «Скачать». Затем перейдите в папку «Загруженные» вашего веб-браузера и скопируйте загруженный файл Classpnp.sys.

Перейдите в папку, в которой должен находиться файл, и вставьте загруженный файл. Ниже приведен список путей к каталогу файлов Classpnp.sys.

  • Windows 10: C:WindowsSystem32drivers
  • Windows 8.1: C:WindowsSystem32drivers
  • Windows 8: 1: C:WindowsSystem32drivers
  • Windows 7: C:WindowsSystem32drivers
  • Windows Vista: C:WindowsSystem32drivers
  • Windows XP:

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

Список версий файлов

For Windows 10

Имя файла
Classpnp.sys

система
Windows 10

Размер файла
348056 bytes

Дата
2017-03-18

Подробности файла
MD5 32be4ba1c8c74f7c8ebf16e07ade73ed
SHA1 9b15d4a34f106b5a11ea355a3c1899e71807a86b
SHA256 e0390eca600c7c3a9cd79398a1fff5305598999e8bc25e586e53ceb8f7b6b9f1
CRC32 08f53465
Пример расположения файла C:WindowsSystem32drivers

For Windows 8.1

Имя файла
Classpnp.sys

система
Windows 8.1

Размер файла
292160 bytes

Дата
2014-11-21

Подробности файла
MD5 8180490bf719facb26468b800f399b8f
SHA1 63e549938bc7e7d06c6613c5b45d2941f9cc85f1
SHA256 044f17b7a6d47727d4a9c0ce1245b082c099068aacf7766e9415072991bd53e6
CRC32 d58fc0a2
Пример расположения файла C:WindowsSystem32drivers

For Windows 8

Имя файла
Classpnp.sys

система
Windows 8

Размер файла
299760 bytes

Дата
2012-07-26

Подробности файла
MD5 4b0238aed52a1a5b7d4ddc6009c60285
SHA1 b2b19b91ec2bc1992ad48839e7279705d698ff57
SHA256 966adacfef0037de184aa514e9136ebf085330106504c2dc023feb9066510297
CRC32 b23f8a23
Пример расположения файла 1: C:WindowsSystem32drivers

For Windows 7

Имя файла
Classpnp.sys

система
Windows 7

Размер файла
179072 bytes

Дата
2010-11-21

Подробности файла
MD5 acfad0b512226c7a83c7cb09fd55a9ad
SHA1 dbe2e674184248ee0d541e9e5cb9146a5fe40528
SHA256 f0f1c47cc164b8bf4b99cc4e9c0d34d603051cd01ed369acb9a781ec9cca56aa
CRC32 a7942a1c
Пример расположения файла C:WindowsSystem32drivers

For Windows Vista

Имя файла
Classpnp.sys

система
Windows Vista

Размер файла
164840 bytes

Дата
2009-04-11

Подробности файла
MD5 6b6bea1421fc416e35b2d17495380104
SHA1 e56ac1f302a519579c1da2a1038ec8f0159bfcf6
SHA256 65509e8545b69bb785a7a38fea8c5ac8f7cad8e5607c02b55407114dc9b27e27
CRC32 77e5c20f
Пример расположения файла C:WindowsSystem32drivers

For Windows XP

Имя файла
Classpnp.sys

система
Windows XP

Размер файла
49536 bytes

Дата
2008-04-14

Подробности файла
MD5 fe47dd8fe6d7768ff94ebec6c74b2719
SHA1 8c5c77dd926b64574df1d6b8fd03fd8522704aaf
SHA256 f6da1c222b327198cc316c4ec44f9ecebe1c78ea6adbb3a05456018c9688a4b2
CRC32 df8b8272
Пример расположения файла
Информация о файле Описание
Размер файла: 340 kB
Дата и время изменения файла: 2017:03:18 18:18:57+00:00
Дата и время изменения индексного дескриптора файлов: 2017:11:05 07:07:54+00:00
Тип файла: Win32 EXE
Тип MIME: application/octet-stream
Предупреждение! Possibly corrupt Version resource
Тип компьютера: Intel 386 or later, and compatibles
Метка времени: 2077:01:24 13:52:03+00:00
Тип PE: PE32
Версия компоновщика: 14.10
Размер кода: 257536
Размер инициализированных данных: 81408
Размер неинициализированных данных: 0
Точка входа: 0x46016
Версия ОС: 10.0
Версия образа: 10.0
Версия подсистемы: 10.0
Подсистема: Native
Номер версии файла: 10.0.15063.0
Номер версии продукта: 10.0.15063.0
Маска флагов файлов: 0x003f
Флаги файлов: (none)
Файловая ОС: Windows NT 32-bit
Тип объектного файла: Driver
Подтип файла: 7
Код языка: Neutral
Набор символов: Unicode
Наименование компании: Microsoft Corporation
Описание файла: SCSI Class System Dll
Версия файла: 10.0.15063.0 (WinBuild.160101.0800)
Внутреннее имя: Classpnp.sys
Авторское право: © Microsoft Corporation. All rights reserved.
Оригинальное имя файла: Classpnp.sys
Название продукта: Microsoft® Windows® Operating System
Версия продукта: 10.0.15063.0

Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.

ClassAcquireChildLock
ClassAcquireRemoveLockEx
ClassAsynchronousCompletion
ClassBuildRequest
ClassCheckMediaState
ClassClaimDevice
ClassCleanupMediaChangeDetection
ClassCompleteRequest
ClassCreateDeviceObject
ClassDebugPrint
ClassDeleteSrbLookasideList
ClassDeviceControl
ClassDisableMediaChangeDetection
ClassEnableMediaChangeDetection
ClassFindModePage
ClassForwardIrpSynchronous
ClassGetDescriptor
ClassGetDeviceParameter
ClassGetDriverExtension
ClassGetFsContext
ClassGetVpb
ClassInitialize
ClassInitializeEx
ClassInitializeMediaChangeDetection
ClassInitializeSrbLookasideList
ClassInitializeTestUnitPolling
ClassInternalIoControl
ClassInterpretSenseInfo
ClassInvalidateBusRelations
ClassIoComplete
ClassIoCompleteAssociated
ClassMarkChildMissing
ClassMarkChildrenMissing
ClassModeSense
ClassNotifyFailurePredicted
ClassQueryTimeOutRegistryValue
ClassReadDriveCapacity
ClassReleaseChildLock
ClassReleaseQueue
ClassReleaseRemoveLock
ClassRemoveDevice
ClassResetMediaChangeTimer
ClassScanForSpecial
ClassSendDeviceIoControlSynchronous
ClassSendIrpSynchronous
ClassSendNotification
ClassSendSrbAsynchronous
ClassSendSrbSynchronous
ClassSendStartUnit
ClassSetDeviceParameter
ClassSetFailurePredictionPoll
ClassSetMediaChangeState
ClassSignalCompletion
ClassSpinDownPowerHandler
ClassSplitRequest
ClassStopUnitPowerHandler
ClassUpdateInformationInRegistry
ClassWmiCompleteRequest
ClassWmiFireEvent
DllUnload

Both Enable and Disable set -- DISABLE

На чтение 8 мин. Просмотров 16.5k. Опубликовано 03.09.2019

Classpnp.sys – это системный файл класса Microsoft Windows SCSI, который входит в состав ОС Windows. Хотя обычные пользователи никогда не должны знать о файле CLASSPNP.SYS, иногда вы можете столкнуться с ошибками, связанными с такими критическими драйверами системных устройств.

Ошибка CLASSPNP.SYS – это ошибка BSOD, и это делает уязвимый компьютер непригодным для использования. Ошибка может возникнуть по нескольким причинам, включая сбой оборудования и повреждение программного обеспечения.

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

В этой статье мы рассмотрим все возможные решения, чтобы исправить ошибку BSOD CLASSPNP.SYS в Windows 10, 7 и 8.

Содержание

  1. Шаги по исправлению ошибок CLASSPNP.SYS BSOD
  2. Решение 1. Удалите недавно установленные программы
  3. Решение 2. Отключите внешнее оборудование/периферийные устройства
  4. Решение 3. Загрузите последнюю известную хорошую конфигурацию
  5. Решение 4. Измените настройки режима SATA в BIOS
  6. Решение 5. Удалите внутреннее оборудование
  7. Решение 6. Запустите проверку системных файлов
  8. Решение 7. Восстановите Windows до более ранней точки
  9. Решение 8. Чистая установка Windows
  10. Заключение

Шаги по исправлению ошибок CLASSPNP.SYS BSOD

Решение 1. Удалите недавно установленные программы

Некоторые пользователи Windows сообщают об ошибке CLASSPNP.SYS, которая появилась после установки видеоигры или программного обеспечения. В такой ситуации весьма вероятно, что программное обеспечение вызывает ошибку.

Репрезентативное изображение – программа не связана с ошибкой.

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

  • Также читайте: 10 лучших программ удаления для пользователей ПК

Решение 2. Отключите внешнее оборудование/периферийные устройства

Другой распространенной причиной ошибки CLASSPNP.SYS являются периферийные устройства. Если к ноутбуку или компьютеру подключено такое оборудование, как мышь USB, внешний жесткий диск, ключ Bluetooth для беспроводной мыши, внешний кулер и любое другое устройство, попробуйте отключить их.

Выключите ваш компьютер. Отключите одну из периферийных устройств и перезагрузите компьютер. Делайте это, пока не решите проблему или все внешние устройства не будут отключены.

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

Решение 3. Загрузите последнюю известную хорошую конфигурацию

Операционная система Windows хранит копию конфигурации оборудования системы и параметров драйвера, взятых из системного реестра. В случае сбоев процесса загрузки ОС добавляет в меню автозагрузки параметр «Последняя удачная конфигурация».

Если ваш компьютер уже обнаружил несколько сбоев загрузки, вы можете использовать опцию Last Good Known Configuration для нормальной загрузки.

ОС Windows автоматически отобразит параметр B oot Последняя удачная конфигурация после нескольких неудачных попыток загрузки ОС.

Или Вы можете вручную получить доступ к этой опции, нажимая клавишу F8, пока не отобразится экран параметров запуска. Убедитесь, что вы начинаете нажимать клавишу F8, прежде чем Windows начнет загружаться.

Примечание. . В Windows 8 и Windows 10 параметр «Последняя удачная конфигурация» по умолчанию отключен. Вам необходимо включить его вручную из редактора реестра.

  • Читайте также: ошибка синего экрана неустранимого тома загрузки на ПК: 4 способа исправить это

Решение 4. Измените настройки режима SATA в BIOS

Ваш компьютер настроен на использование механизма IDE или ACHI для настройки с SATA (Serial ATA). Большое количество пользователей сообщили, что изменение режима SATA в настройках BIOS помогло им исправить ошибку CLASSPNP.SYS.

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

В настройках BIOS временно измените режим диска с AHCI на IDE. Сохраните изменения и выйдите из экрана BIOS.

Примечание. Если режим SATA уже установлен на IDE, попробуйте изменить его на следующий доступный параметр – режим AHCI или режим совместимости.

Перезагрузите компьютер и проверьте, устранена ли ошибка CLASSPNP.SYS.

Решение 5. Удалите внутреннее оборудование

Ошибка CLASSPNP.SYS также может возникнуть из-за внутренней аппаратной ошибки. Если у вас неисправный ОЗУ или жесткий диск, это может помешать нормальной загрузке Windows.

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

Даже если вы не добавили новое оборудование, попробуйте извлечь дополнительную оперативную память, видеокарту или карту PCI-e или беспроводную карту и перезагрузить компьютер. Вы можете переустановить оборудование, если компьютер загружается нормально.

Если у вас есть только одна единица ОЗУ, но рядом есть пустой слот, извлеките и вставьте ОЗУ в пустой слот.

В качестве альтернативы вы также можете использовать Memtest86 +, программное обеспечение для проверки модулей памяти, и создать с него загрузочный USB-накопитель для проверки наличия неисправного модуля памяти.Вы можете скачать Memtest86 + ISO с официального сайта.

Сначала убедитесь, что вы создали загрузочную флешку или CD. Загрузитесь с USB-накопителя и запустите проверку памяти, чтобы проверить наличие неисправного модуля памяти. При обнаружении удалите неисправные модули памяти и перезагрузите компьютер.

  • Также читайте: 5 лучших программ для конфигурации оборудования для пользователей ПК с Windows

Решение 6. Запустите проверку системных файлов

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

Если вы можете загрузиться в Windows, откройте Командную строку от имени администратора и введите следующую команду: sfc/scannow

Если вы не можете загрузиться в Windows, вот как запустить проверку системных файлов из режима восстановления.

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

Вариант 1 . Если ваш компьютер не запускается несколько раз, Windows 10 открывает экран восстановления. На экране восстановления нажмите См. Дополнительные параметры восстановления.

Вариант 2 . Кроме того, вы также можете перейти в режим восстановления, нажав клавишу F8.

Выключите ваш компьютер. Нажмите кнопку запуска и начинайте нажимать F8, пока не появится экран восстановления.

Запустите проверку системных файлов из режима восстановления

  1. На экране Выберите вариант нажмите Устранение неполадок .
  2. Нажмите Дополнительные параметры. В разделе «Дополнительные параметры» выберите Командная строка.

  3. После перезагрузки введите следующую команду в окне командной строки.
  sfc/Scannow  

Если эта команда не сработала, попробуйте это. Эта команда будет проверять только ошибки на диске C:

  Sfc/scannow/OFFBOOTDIR = C:/OFFWINDIR = C: Windows  

Средство проверки системных файлов теперь сканирует драйвер C: на наличие поврежденных или отсутствующих файлов и пытается восстановить его новыми файлами.

  • Также читайте: Обновите Почту и Календарь Windows 10, чтобы включить темный режим

Решение 7. Восстановите Windows до более ранней точки

Все ПК с Windows поставляются с опцией Восстановление системы . Функция восстановления системы позволяет вам создать точку восстановления системы и сохранить ее на локальном диске.

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

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

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

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

Введите Восстановить на панели Cortana/Search и выберите параметр Создать точку восстановления системы . Откроется окно Свойства системы .

Вариант 2. Если вы не можете войти в систему или загрузить Windows, выполните следующие действия.

  1. Если ПК не удается запустить процесс загрузки несколько раз, на нем отобразится экран восстановления (экран автоматического восстановления). На экране Восстановление нажмите Просмотреть дополнительные параметры.
  2. Компьютер будет перезагружен с экраном Выбор параметра . Нажмите на Устранение неполадок .
  3. Затем нажмите Дополнительные параметры и выберите Восстановление системы.

Выполнить восстановление системы

  1. В окне Восстановление системы нажмите кнопку Далее .
  2. Windows покажет последнюю созданную точку восстановления. Чтобы просмотреть все доступные точки восстановления, нажмите « Показать больше точек восстановления ».
  3. Теперь вам нужно решить, какую точку восстановления использовать. Я бы порекомендовал начать с самого последнего.
  4. Выберите точку восстановления и нажмите кнопку « Сканировать на наличие уязвимых программ» . Это покажет вам все программы, которые были затронуты (деинсталлированы/переустановлены), если вы продолжите восстановление системы.
  5. Нажмите Далее . Прочитайте подтверждающее сообщение и нажмите Готово.

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

Если ошибка CLASSPNP.SYS устранена, вам не нужно ничего делать. Если нет, попробуйте другие точки восстановления, пока проблема не будет устранена.

  • Также читайте: Как создать точку восстановления на рабочем столе Windows 10

Решение 8. Чистая установка Windows

Это наименее рекомендуемое решение для исправления ошибки CLASSPNP.sys. Однако, если проблема началась на новом компьютере или после установки обновлений, очистите установку Windows с последней доступной версией, чтобы решить эту проблему.

Обязательно сделайте резервную копию любых доступных данных перед выполнением чистой установки. Вы можете обратиться к одному из наших руководств, объясняющих, как установить Windows 10 Creators Update из файла ISO.

Заключение

Распространенной причиной ошибки CLASSPNP.sys является сбой оборудования или какой-либо поврежденный драйвер. Время от времени Windows может быть не в состоянии правильно определить оборудование, что может привести к сбоям в работе и помешать нормальному запуску системы.

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

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

classpnp.sys

Версия dll: 6.2.9200.16384

Описание

: SCSI Class System Dll

Автор

: Microsoft Corporation

Архитектура

: 64 bits

Размер

: 336624 Byte ( 328.73 KB )

Дата

: 2015-7-31

Как установить classpnp.sys?

Подробная инструкция по установке

  1. Загрузите файл classpnp.sys на компьютер.
  2. Поместите файл в папку с требующей его программой.
  3. Скопируйте файл file в следующие системные директории.
    • (Windows XP, Vista, Windows 7, Windows 8.1, Windows 10) — C:WindowsSystem32
    • (Windows NT/2000) — C:WINNTSystem32
    • (Windows 95/98/Me) — C:WindowsSystem

    В Windows x64 необходимо поместить файл в директорию C:WindowsSysWOW64

  4. Перезагрузите компьютер.

SYS File Error Message

Если операционная система Windows не может запустить приложение из-за ошибки classpnp.sys или classpnp.sys не найден, classpnp.sys может отсутствовать или у вас может быть ошибка реестра.
Мы настоятельно рекомендуем вам скачать последние официальные драйвера, исправить проблемы с драйверами и держать их в курсе.

Первым делом:

Скачайте библиотеку — скачать Classpnp.sys

Затем:

Поместите Classpnp.sys
в одну из следующих папок:

Если у вас 64-битная версия Windows, то поместите файл в:

«C:WindowsSysWOW64»

Если у вас 32-битная версия Windows, то поместите файл в:

«C:WindowsSystem32»

После этого

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

Всё равно выдаёт ошибку Classpnp.sys
не был найден?

Тогда придётся установить этот файл вручную. Для этого:

Зайдите в меню «Пуск».

В строчке поиска введите «cmd». И запустите найденную программу от имени администратора.

В открывшемся окне введите «regsvr32 Classpnp.sys
«.

После этого снова перезагрузите компьютер. Теперь ошибка должна быть исправлена.

Если что-то не понятно прочитайте более подробную инструкцию — как установить dll файл.

На чтение 5 мин. Просмотров 739 Опубликовано 29.05.2021

2

Если ваш компьютер зависал на синем экране с CLASSPNP .SYS не удалось загрузить, не беспокойтесь. Часто это совсем несложно исправить…

Содержание

  1. 5 исправлений для CLASSPNP.SYS
  2. Исправление 1: войдите в безопасный режим с подключением к сети
  3. Исправление 2: Запустите SFC
  4. Исправление 3: Обновление драйверы вашего устройства
  5. Исправление 4: обновите BIOS
  6. Исправление 5: проверьте аппаратное повреждение

5 исправлений для CLASSPNP.SYS

Вот 5 исправлений, которые помогли другим пользователям решить проблему CLASSPNP.SYS.

Если вы НЕ МОЖЕТ войти в свою компьютерную систему, начните с Исправление 1 ; Если вы МОЖЕТЕ войти в свою компьютерную систему правильно, начните с Исправление 2 .

  1. Войдите в безопасный режим с загрузкой сетевых драйверов
  2. Запустите SFC
  3. Обновите свое устройство драйверы
  4. Обновите BIOS
  5. Проверьте оборудование на наличие повреждений

Исправление 1: войдите в безопасный режим с подключением к сети

Я использую Windows 10:

Я использую Windows 7:

Я использую Windows 10:

  1. Убедитесь, что ваш компьютер выключен .
  2. Нажмите на кнопку , чтобы включить компьютер. Затем, когда Windows отобразит экран входа в систему (т.е. Windows полностью загрузилась), нажмите и удерживайте кнопку питания , чтобы выключить его.
  3. Повторяйте 1) и 2) до тех пор, пока не появится экран говорит: Подготовка к автоматическому восстановлению .
  4. Подождите, пока Windows завершит диагностику свой компьютер и щелкните Дополнительные параметры .
  5. Щелкните Устранение неполадок .
  6. Щелкните Дополнительные параметры .
  7. Щелкните Параметры запуска .
  8. Щелкните Перезагрузить .
  9. На клавиатуре нажмите 5 , чтобы включить безопасный режим с загрузкой сетевых драйверов .
  10. Теперь вы успешно загрузились в безопасном режиме с подключением к сети , продолжайте с Шаг 2 для устранения проблемы с синим экраном.

Я использую Windows 7:

  1. Убедитесь, что ваш компьютер выключен .
  2. Нажмите кнопку питания , чтобы включить ваш компьютер и сразу же нажмите F8 с интервалом в 1 секунду.
  3. Нажмите клавиши со стрелками , чтобы перейти к Saf e Режим с подключением к сети и нажмите Enter ..
  4. Теперь вы успешно загрузились в безопасном режиме с поддержкой сети , перейдите к шагу 2 , чтобы устранить проблему с синим экраном CLASSPNP.SYS .

Исправление 2: Запустите SFC

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

  1. На клавиатуре нажмите клавишу с логотипом Windows и введите cmd . Затем щелкните правой кнопкой мыши Командную строку и выберите Запуск от имени администратора .

    Нажмите Да , когда будет предложено подтвердить.
  2. В окне командной строки введите sfc/ scannow и нажмите Enter . Замена SFC займет некоторое время поврежденные системные файлы с новыми, если они обнаруживаются, так что проявите терпение.
  3. Перезагрузите компьютер и посмотрите, решена ли проблема с синим экраном смерти CLASSPNP.SYS.

Исправление 3: Обновление драйверы вашего устройства

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

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

Вы можете обновлять драйверы автоматически с помощью БЕСПЛАТНО или Профессиональная версия Driver Easy. Но с версией Pro требуется всего 2 клика (и вы получаете полную поддержку и 30-дневную гарантию возврата денег):

  1. Скачать и установите Driver Easy.
  2. Запустите Driver Easy и нажмите кнопку Сканировать сейчас . Затем Driver Easy просканирует ваш компьютер и обнаружит все проблемные драйверы.
  3. Вы можете перейти на версию Pro и нажмите Обновить все , чтобы автоматически загрузить и установить правильную версию ВСЕХ драйверов, которые отсутствуют или отсутствуют. дату в вашей системе.

    Вы также можете нажать Обновить сделать это бесплатно, если хотите, но это частично вручную.

  4. Перезагрузите компьютер. Надеюсь, проблема с синим экраном CLASSPNP.SYS решена. Если проблема не исчезнет, ​​перейдите к шагу 4 ниже.

Исправление 4: обновите BIOS

BIOS ( Базовая система ввода/вывода ) выполняет инициализацию оборудования и запускает процессы во время загрузки вашего компьютера. Итак, мы можем попробовать обновить наш BIOS , чтобы увидеть, решит ли он нашу проблему с синим экраном CLASSPNP.SYS.

Важно : Неправильное обновление BIOS может привести к потере данных или даже более серьезным проблемам. Поэтому будьте осторожны или обратитесь за профессиональной помощью в процессе обновления BIOS .

  1. На клавиатуре нажмите Windows клавишу с логотипом и R одновременно, затем скопируйте и вставьте msinfo32 в поле и нажмите Enter .
  2. В информацию в Версия/Дата BIOS и перейдите на официальный сайт производителя.
  3. Проверьте Поддержка (или Загрузить ) и найдите последнее обновление BIOS.
  4. Загрузите файл и установите его правильно.
  5. Перезагрузите компьютер и посмотрите, решена ли проблема с синим экраном CLASSPNP.SYS. Если да, то отлично. Но если это не сработает, не волнуйтесь. Есть еще один шаг, который вы можете попробовать.

Исправление 5: проверьте аппаратное повреждение

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

Сканирование ошибок диска занимает всего несколько минут. Но как только он обнаружит какие-либо ошибки, процедура исправления может занять ЧАСЫ. Убедитесь, что у вас достаточно времени.

Для этого:

  1. На клавиатуре нажмите одновременно нажмите клавишу с логотипом Windows и E , затем нажмите Этот компьютер .
  2. Щелкните правой кнопкой мыши Локальный диск и выберите Свойства . .
  3. Щелкните вкладку Инструменты > Проверьте .
  4. Щелкните Сканировать диск .
  5. Следуйте инструкциям на экране. для Windows, чтобы обнаружить и исправить найденные ошибки.
  6. Перезагрузите компьютер и посмотрите, исправлена ​​ли ошибка CLASSPNP.SYS.

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

Итак, 5 основных исправлений проблемы с синим экраном CLASSPNP.SYS. Надеюсь, это поможет, и не стесняйтесь писать нам комментарий, если у вас есть какие-либо идеи, которыми вы можете поделиться с нами. 🙂

Неоконченный эксперимент с неполным количеством входных данных.

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

classpnp.sys

При этом, та же проблема имеет зеркальное отображение и в обычном (нормальном) режиме загрузки: в редких случаях загрузка останавливается на анимированном логотипе (значке) Windows (bootscreen), который может «видоизменяться» на экране приветствия бесконечно долго:

bootscreen

намного чаще же система подвисает на более позднем этапе, когда на черном фоне остается графический курсор мыши:

black screen of death

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

Подопытная конфигурация: Windows 7 SP1 Professional RUS x86, 32-битная выбрана как наименее капризная в плане препятствий, чинимых на пути исследователя, защита у неё определенно проще, патчить легче, бороться с PatchGuard не приходится!! :)

Теория

На данный исторический момент уровень моих знаний оставляет желать лучшего, тем не менее, все же попытаемся выйти за привычный ареал обитания, распахнуть, так сказать, рамки собственного познания, тем самым устремившись навстречу эволюции :) В очередной раз не перестаешь удивляться отсутствию у одной из самых популярных настольных операционных систем продуманной диагностической подсистемы. Удивляюсь, конечно же, не я один.. на официальных форумах Microsoft по теме зависания на classpnp.sys можно встретить достаточно много вопросов, к примеру, пользователь с ником Дима_413 пишет:

classpnp.sys freeze

Справедливо, поскольку зависание на classpnp.sys, наряду с черным экраном смерти и штормом прерываний, является примером недоработок в архитектуре системы Windows 7, вероятно ведущих свою родословную из недостатков архитектуры x86. Странно другое, ведь на ранних стадиях загрузки операционной системы (начиная с кода сектора MBR, Bootmgr) уже обеспечена простая диагностика, которая выводит сообщения в текстовом режиме в качестве реакции на ошибки. Получается, что отсутствие подобного подхода при зависании на classpnp.sys наблюдается по причине возникновения блокировок в коде ядра в части обработки ошибок/таймаутов от сторонних драйверов [устройств] на раннем этапе загрузки, вероятно разработчики посчитали подобный код бессмысленными, поскольку он все-равно не сможет отработать? Поэтому:

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

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

Что есть сам classpnp.sys?

Classpnp — общая библиотека класса устройств хранения информации (жестких/твердотельных накопителей, ленточных устройств, CD/DVD-ROM’ов и аналогичных), используемая драйверами жестких дисков, CD/DVD-ROM, ленточных накопителей (включая SATA/SCSI-накопители).

Из определения следует, что любой драйвер, относящийся к классу устройств хранения информации (магнитных, ленточных, оптических), использует функции данной библиотеки в процессе функционирования. Действительно, образ представляет собой типовую системную библиотеку (DLL), содержащую набор устройствонезависимых процедур (функций), используемых классом отмеченных ранее устройств. Похоже что данная библиотека — это библиотека, функции которой используются всеми драйверами накопителей (устройств хранения) в операционной системе Windows. Библиотека обеспечивает для системных/сторонних драйверов уровня ядра общие процедуры работы с устройствами хранения на уровне обслуживания пакетов IRP, поддержки функций PnP и управления питанием, выполнения общих алгоритмов работы с памятью, чтения, записи, инициализации, конфигурации устройств, работа с уровнями IRQL, обработку ошибок и много прочей аналогичной необходимой требухи.
В Windows XP и последующих операционных системах, некоторые из наиболее часто используемых сервисов, ранее предоставляемых прямыми вызовами к библиотеке classpnp.sys, теперь предоставляются драйвером класса. Поэтому в Windows XP (и более поздних системах) обычно нет необходимости прямого вызова функции classpnp.sys из сторонних минипорт-драйверов.

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

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

Общая теория загрузки

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

  • Выполняется код микропрограммы BIOS/UEFI (POST);
  • Выполняется код сектора MBR;
  • Выполняется код сектора(ов) PBR;
  • Выполняется код модуля Bootmgr.exe(.efi);
  • Выполняется код модуля Winload.exe(.efi);
  • Выполняется инициализация ядра (ntoskrnl.exe | ntkrnpa.exe | ntkrnlmp.exe | ntkrpamp.exe)
  • Ядро создает/запускает процесс SMSS, который создает сессии:
    • Сессия 0
      • запускается копия процесса CSRSS:
      • Wininit
      • SCM (services.exe)
      • LSASS
      • LSM
    • Сессия 1
      • запускается копия процесса CSRSS:
      • WinLogon
      • LogonUI.exe
      • UserInit
      • оболочка (explorer.exe)
      • Приложения автозагрузки

Есть примета, что если зависает на classpnp.sys — это к апгрейду :) Если серьезно, то за все время компьютерной практики относительно данной темы накопилось несколько наблюдений:

  1. В разные периоды практики удавалось понаблюдать очень похожие между собой сбои, когда возникали ситуации, в которых загрузка в безопасном режиме зависала не на самом драйвере classpnp.sys, а на следующих за ним, то есть этот драйвер не был последним в списке (например, иногда загрузка вставала на agp440.sys).
  2. На нормально загружающихся в безопасном режиме системах периодически наблюдал картину, когда текстовый режим кончался на выводе строки classpnp.sys с надписью «Подождите, пожалуйста…», после чего присутствовала совсем уж короткая пауза и загрузка уходила в графический режим и продолжалась. Делаем выводы, что приведенная строка ожидания характеризует конец одного (визуально определяемого нами как «текстовый») этапа загрузки и переход к следующему (визуально «графическому»).

Каково, а? Первый пункт, я бы сказал, просто расшатывает столпы веры в то, что виновником является именно драйвер classpnp.sys. Отсюда непременно возникает один резонный вопрос: действительно ли причина зависания кроется в тех драйверах, которые мы наблюдаем в списке на экране монитора? Или то что мы видим является ли истинной причиной происходящего?

Этап Winload

Где же впервые в коде модулей запуска встречается загрузка каких-либо системных или сторонних драйверов/библиотек? Очевидно что на этапе Winload.exe, поскольку именно в коде данного модуля впервые начинают загружаться системные драйвера с флагом BOOT_START. С целью анализа нам придется изучать исходный код, для этого расчехляем IDA и дизассемблируем код модуля Winload.exe. После продолжительного изучения алгоритмов можно прийти к выводу, что исполнение кода модуля начинается с точки входа в процедуре OslMain. Уже из этой процедуры вызывается дочерняя функция OslInitializeCodeIntegrity, которая проверяем целостность модулей, участвующих в загрузке. В коде основной функции встречается интересная вложенная функция под названием OslpLoadAllModules, которая используется разнообразным кодом для обеспечения загрузки системных модулей (они же — драйвера/библиотеки режима ядра). Могу ошибаться, но мне показалось, что все модули, загружаемые через неё на начальной стадии, делятся на:

  • жестко заданные во внутренней переменной OslMicrosoftBootImages;
  • загружаемые уже при подключении и разборе ветви реестра HKLMSYSTEMCurrentControlSetservices;
  • загружаемые при разборе зависимостей используемых функций;

Непосредственно сама загрузка производится через вложенную функцию OslLoadImage (и подчиненную LoadImageEx). Теперь настало время ознакомиться с полным списком загружаемых кодом модуля Winload.exe драйверов:

Имя Официальное описание Зависимости
ntoskrnl.exe NT Kernel & System pshed.dll, hal.dll, bootvid.dll, kdcom.dll, clfs.sys, ci.dll
hal.dll Hardware Abstraction Layer DLL ntoskrnl.exe, pshed.dll, kdcom.dll
kdcom.dll Serial Kernel Debugger ntoskrnl.exe, hal.dll
pshed.dll Драйвер аппаратных ошибок, специфичных для платформы ntoskrnl.exe, hal.dll
bootvid.dll VGA Boot Driver ntoskrnl.exe, hal.dll
ci.dll Code Integrity Module ntoskrnl.exe
clfs.sys Common Log File System Driver ntoskrnl.exe, hal.dll
fileinfo.sys Fileinfo Filter Driver ntoskrnl.exe, hal.dll, fltmgr.sys
fltmgr.sys Диспетчер фильтров файловых систем Майкрософт ntoskrnl.exe, hal.dll
atapi.sys ATAPI IDE Miniport Driver ntoskrnl.exe, ataport.sys
ataport.sys ATAPI Driver Extension ntoskrnl.exe, hal.dll
wmilib.sys WMILIB WMI support library DLL ntoskrnl.exe
amdxata.sys Storage Filter Driver ntoskrnl.exe, hal.dll
mountmgr.sys Диспетчер точек подключения ntoskrnl.exe, hal.dll
msahci.sys MS AHCI 1.0 Standard Driver ntoskrnl.exe, pciidex.sys
pciide.sys Generic PCI IDE Bus Driver ntoskrnl.exe, pciidex.sys
pciidex.sys PCI IDE Bus Driver Extension ntoskrnl.exe, hal.dll
msisadrv.sys ISA Driver ntoskrnl.exe, wdfldr.sys
wdfldr.sys Kernel Mode Driver Framework Loader ntoskrnl.exe, hal.dll
acpi.sys ACPI драйвер для NT ntoskrnl.exe, hal.dll, wmilib.sys
partmgr.sys Partition Management Driver ntoskrnl.exe, hal.dll, wmilib.sys
pci.sys NT Plug and Play PCI-перечислитель ntoskrnl.exe, hal.dll, pshed.dll
vdrvroot.sys Корневой перечислитель виртуальных дисков ntoskrnl.exe, wdfldr.sys
volmgr.sys Volume Manager Driver ntoskrnl.exe, hal.dll, wmilib.sys
volmgrx.sys Драйвер расширения диспетчера томов ntoskrnl.exe, hal.dll
wdf01000.sys Среда выполнения платформы драйвера режима ядра ntoskrnl.exe, hal.dll, wdfldr.sys
msrpc.sys Kenrel Remote Procedure Call Provider ntoskrnl.exe
cng.sys Kernel Cryptography, Next Generation ntoskrnl.exe, hal.dll
pcw.sys Perfomance Counters for Windows Driver ntoskrnl.exe
fs_rec.sys File System Recognizer Driver ntoskrnl.exe
ndis.sys Драйвер NDIS 6.20 ntoskrnl.exe, hal.dll, netio.sys
ksecpkg.sys Kernel Security Support Provider Interface Packages ntoskrnl.exe, ksecdd.sys, cng.sys
ksecdd.sys Kernel Security Support Provider Interface Packages ntoskrnl.exe, hal.dll, msrpc.sys
tcpip.sys Драйвер TCP/IP ntoskrnl.exe, hal.dll, msrpc.sys, ksecdd.sys, fwpkclnt.sys, fltmgr.sys, ndis.sys, netio.sys
fwpkclnt.sys FWP/IPSec Kernel-Mode API ntoskrnl.exe, hal.dll, msrpc.sys, ndis.sys, netio.sys
netio.sys Network I/O Subsystem ntoskrnl.exe, hal.dll, ndis.sys, msrpc.sys
vmstorfl.sys Virtual Storage Filter Driver ntoskrnl.exe, hal.dll, wdfldr.sys
volsnap.sys Драйвер теневого копирования тома ntoskrnl.exe, hal.dll
spldr.sys loader for security processor ntoskrnl.exe
rdyboost.sys ReadyBoost Driver ntoskrnl.exe, hal.dll, ksecdd.sys
mup.sys Драйвер поставщика множественных UNC-имен ntoskrnl.exe, hal.dll
hwpolicy.sys Hardware Policy Driver ntoskrnl.exe
fvevol.sys BitLocker Drive Encryption Driver ntoskrnl.exe, hal.dll
disk.sys PnP Disk Driver ntoskrnl.exe, hal.dll, classpnp.sys
classpnp.sys SCSI Class System DLL ntoskrnl.exe, hal.dll

В таблице представлены (сведены) драйверы, у которых соответствующий параметр START выставлен в значение 0, то есть приведенные в таблице драйвера можно смело назвать группировкой драйверов режима загрузки (BOOT). Столбец зависимостей приведен в таблице не случайно, он то как раз нужен нам с целью определения функциональных взаимосвязей (зависимостей на уровне функций) того или иного драйвера.

В модуле winload.exe драйвер с именем classpnp.sys вы не найдете ни в жесткозакодированных (вкомпилированных) переменных, ни в ветвях реестра. Он загружается при разборе зависимостей от драйвера disk.sys, который использует некоторые функции classpnp.sys.

Одним из первых загружается образ ядра (ntoskrnl.exe) и уровень аппаратных абстракций HAL.DLL, но секции импорта у этих модулей на данном этапе не разрешаются (то есть указанные модули просто подгружаются в память без связывания). Соответственно и код библиотеки на этом этапе всего-лишь загружается в адресное пространство ядра, для того что бы в последствии, после инициализации, функции были «видимыми» (доступными) для кода других драйверов. Затем, таблица импорта актуального модуля ядра (ntoskrnl.exe и аналогичные) заполняется и связывается (при помощи функции LoadImports и вложенной в неё BindImportRefences). После того, как все подобные подготовительные процедуры отработали, управление передается ядру при помощи функции OslArchTransferToKernel. То есть, давайте резюмируем данный этап загрузки:

В процессе функционирования модуля Winload.exe драйвера режима загрузки только лишь подгружаются в память, но не инициализируются.

Отсюда рождается ряд вопросов:

  • может ли этот этап (Winload.exe) загрузки зависнуть по причине какого-либо типа повреждения файлов подгружаемых драйверов (в том числе и библиотеки classpnp.sys)?
  • если да, то по каким именно причинам: повреждение записи файла в файловой системе ntfs? неправильная версия classpnp.sys? нулевая длина файла?

Этап ntoskrnl

Собственно, это ни что иное как ядро операционной системы. На самом деле имя ntoskrnl.exe используется только в одноядерной системе (без режимов SMP/PAE). Имена ядра определяются следующим образом:

  • ntoskrnl.exe — (1 ядро ЦП);
  • ntkrnlmp.exe — (N ядер ЦП, SMP);
  • ntkrnlpa.exe — (1 ядро ЦП, PAE);
  • ntkrpamp.exe — (N ядер ЦП, SMP, PAE);

Как мы знаем из теории загрузки операционной системы Windows, после передачи управления на код модуля ядра, в нем происходит последовательная инициализация множества подсистем ядра. Поэтому дизассемблируем и начинаем изучать исходный текст актуального (на моей тестовой конфигурации это был ntkrnlpa.exe) ядра. Если честно, задача перед нами стоит не такая уж и тривиальная и по уму нам предстоит проанализировать множество этапов загрузки операционной системы и попытаться связать кодовые ветвления с событиями, происходящими на экране монитора. Тем не менее, при отсутствии исходников на языке C и знаний по декомпиляции кода из машинного языка в листинг на C, разобраться в дизассемблированных исходных кодах будет непросто, благо что разработчиком предоставляются символы ядра.
Итак, выше мы уже упоминали, что визуально на экране надпись «Подождите, пожалуйста…» знаменует окончание какого-то одного этапа загрузки и переход к следующему, при том что деление это чисто формальное, но для нас оно требуется с целью упрощения понимания происходящего. Теперь, за неимением другой внятной логики, нам надо визуально привязаться к тому, что происходит на экране, но как отследить момент начала текстового этапа и его конец? Поскольку я не умею пока работать с удаленной отладкой, был использован следующий алгоритм действий: мы будем расставлять так называемые «точки зацикливания» (точки «подвисания»), представляющие собой пару машинных опкодов EB FE (команда «прыжка на месте» — jmp $) и вводящие процессор в бесконечный цикл выполнения.

Ага, прямо так вот сразу взяли и модифицировали! Не все так просто как хотелось бы, дело в том, что ядро проверяет собственную целостность, поэтому если вы не выключили проверку подлинности кода ядра (флаги DISABLE_INTEGRITY_CHECKS и TESTSIGNING), то при попытке внесения изменений ядро «валится» в BSOD. Поэтому сперва нам следует отключить проверку целостности bootmgr и winload.

Первая точка останова

Как уже было рассмотрено, процесс загрузки некоторых драйверов категории BOOT_START начинается на этапе работы модуля winload.exe. Поэтому было решено начать с модуля winload.exe и попытаться обнаружить в нем участок кода, в котором процесс загрузки может подвиснуть на том самом текстовом участке (после вывода списка драйверов и сообщения «Подождите, пожалуйста..»). Далее, мы постараемся модифицировать найденный фрагмент таким образом, чтобы ввести в бесконечный цикл (подвесить), тем самым найдя первую точку останова. Самая удачная, по моему мнению, точка — это непосредственно перед передачей управления коду ядра ntoskrnl.exe. Где осуществляется передача управления? Для выяснения этого стартуем с начала основной процедуры OslMain и доходим до её финальной части, где код передачи управления происходит через вызов процедуры OslArchTransferToKernel. Вот так выглядит обрамляющий участок кода:

.text:00401781                         loc_401781:

.text:00401781 8B 70 1C                                mov     esi, [eax+1Ch]

.text:00401784 E8 AC 7C 00 00                          call    _BlBdStop@0

.text:00401789 56                                      push    esi

.text:0040178A 53                                      push    ebx

.text:0040178B E8 50 72 04 00                          call    near ptr _OslArchTransferToKernel@8

.text:00401790

.text:00401790                         loc_401790:

.text:00401790 EB FE                                   jmp     short loc_401790

.text:00401790                         _OslpMain@4     endp

после непродолжительного оттупления, было решено заменить два маркированных (выделены цветом) пуша на инструкцию зацикленного прыжка jmp $ (опкоды EB FE). Изменения выполняем в шестнадцатеричном редакторе методом поиска длинной сигнатуры и замены (двух) байтов. После сохраняем изменений в Winload.exe, обязательно модифицируем контрольную сумму (CRC) образа, затем перезагружаемся, загрузка в безопасном режиме и.. результат:

classpnp.sys подвисает

Удача!! Произошло зависание процесса загрузки внутри «текстового» этапа на строке, содержащей имя драйвера classpnp.sys. Значит, мы попали своей модификацией в нужное место. Условимся, что отправная первая точка останова найдена.

Вторая точка останова

Теперь давайте попробуем определиться со второй точкой останова.

Как искать вторую точку? Загружаясь в безопасном режиме на нормально работающей станции, мы замечаем, что после вывода на экран имени classpnp.sys происходит кратковременная задержка и выполняется переключение между графическими режимами видеоадаптера.

Судя по всему, ядро принимает от кода модуля Winload.exe управление в собственной точке входа, которая является первой инструкцией функции KiSystemStartup. После этого процесс инициализации ядра системы проходит несколько внутренних этапов, во время которых на экране отображается все тот же «текстовый» режим (с уже знакомым нам списком загруженных драйверов). Затем происходит переключение в графический режим с разрешением 640×480 и выводом анимированного логотипа загрузки (bootscreen). Анимация этого логотипа обеспечивается группой функций с суффиксом Invb*, которые занимаются инициализацией драйвера видеокарты и последующим выводом разнообразных графических примитивов. Например, функция InbvUpdateProgressBar в определенном режиме обновляет прогресс-бар времени загрузки.
Но это все представляет для нас лишь опосредованный интерес, поскольку после текстового режима загрузка уходит в графический режим далеко не сразу. Этап с выводом логотипа находится в модуле ядра, а вот переход к следующему (графическому) этапу происходит позже, во время загрузки диспетчера (менеджера) сессий SMSS (модуль smss.exe). Вычислил я это экспериментальным путем, проставляя точки останова по ходу исполнения этапов инициализации ядра. В конце концов я обнаружил интересную процедуру с именем Phase1Initialization, в которой происходит вызов вложенной процедуры Phase1InitializationDiscard, в конце которой мы находим следующий фрагмент кода:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

. . .

INIT:007C9378                         loc_7C9378:                             ; CODE XREF: Phase1InitializationDiscard(x)+DCDj

INIT:007C9378 6A 5A                                   push    5Ah

INIT:007C937A E8 B3 D9 C3 FF                          call    _InbvUpdateProgressBar@4 ; InbvUpdateProgressBar(x)

INIT:007C937F E8 BB 00 00 00                          call    _StartFirstUserProcess@0 ; StartFirstUserProcess()

INIT:007C9384 FF 05 30 4B 57 00                       inc     _InitializationPhase

INIT:007C938A 53                                      push    ebx             ; Tag

INIT:007C938B FF 74 24 34                             push    [esp+0B8h+P]    ; P

INIT:007C938F E8 2A 47 D6 FF                          call    _ExFreePoolWithTag@8 ; ExFreePoolWithTag(x,x)

INIT:007C9394 53                                      push    ebx             ; Argument2

INIT:007C9395 53                                      push    ebx             ; Argument1

INIT:007C9396 FF 35 28 6E 54 00                       push    _ExCbPhase1InitComplete ; CallbackObject

INIT:007C939C E8 B6 83 C6 FF                          call    _ExNotifyCallback@12 ; ExNotifyCallback(x,x,x)

INIT:007C93A1 39 1D 20 CE 54 00                       cmp     _ViVerifierEnabled, ebx

INIT:007C93A7 74 07                                   jz      short loc_7C93B0

INIT:007C93A9 6A 05                                   push    5

INIT:007C93AB E8 DB D0 F7 FF                          call    _VfNotifyVerifierOfEvent@4 ; VfNotifyVerifierOfEvent(x)

. . .

Как помечено цветовой маркировкой, тут у нас вызывается функция _StartFirstUserProcess которая и создает процесс SMSS (Диспетчер сеанса/сессии, Session Manager Subsystem Service). Фактически именно в коде данной функции и происходит (визуально) переключение из графического режима 640×480 в «родное» разрешение установленного монитора (при условии, что установлены драйвера видеоадаптера и выставлено правильное разрешение). Таким образом, инструкция вызова функции _StartFirstUserProcess и знаменует собой:

  • в безопасном режиме: окончание «текстового» этапа загрузки модуля ядра;
  • в нормальном режиме: начало этапа анимированного логотипа (bootscreen);

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

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

Между точками: инициализация драйвера classpnp.sys

Помните мы говорили, что загрузка большинства драйверов происходит на этапе работы модуля Winload.exe, а вот связывание и инициализация этих драйверов происходит уже на этапе работы модуля ядра (ntoskrnl.exe). Выходит что и инициализация интересующей нас библиотеки classpnp.sys происходит на этапе функционирования ядра. Давайте проверим, могут ли проблемы с инициализацией быть причиной зависания, для этого изучим внутреннюю структуру драйвера classpnp.sys. Как и в любом другом драйвере, после загрузки в адресное пространство ядра, требуется выполнить инициализацию, поэтому вызывается процедура инициализации драйвера, которая традиционно носит название DriverEntry.

. . .

INIT:0002F048                         _GsDriverEntry@8 proc near

INIT:0002F048

INIT:0002F048                         DriverObject    = dword ptr  8

INIT:0002F048                         RegistryPath    = dword ptr  0Ch

INIT:0002F048

INIT:0002F048 8B FF                                   mov     edi, edi

INIT:0002F04A 55                                      push    ebp

INIT:0002F04B 8B EC                                   mov     ebp, esp

INIT:0002F04D E8 BD FF FF FF                          call    ___security_init_cookie

INIT:0002F052 5D                                      pop     ebp

INIT:0002F053 EB B0                                   jmp     short _DriverEntry@8

INIT:0002F053                         _GsDriverEntry@8 endp

. . .

и код вызываемой подфункции:

. . .

INIT:0002F005                         _DriverEntry@8  proc near

INIT:0002F005 33 C0                                   xor     eax, eax

INIT:0002F007 C2 08 00                                retn    8

INIT:0002F007                         _DriverEntry@8  endp

. . .

Ну и что мы тут видим? Помимо сервисной функции __security_init_cookie, которая, по заверению разработчиков, предназначается для защиты от переполнения буфера (При входе в функцию с защитой от переполнения cookie-файл помещается в стек, а при выходе значение в стеке сравнивается с глобальным cookie-файлом. Любое различие между ними указывает, что произошло переполнение буфера, что приводит к немедленному завершению работы программы), процедура инициализации этого драйвера не выполняет никаких специфических действий, по большому счету не делает вообще ничего, что могло бы её подвесить, даже не инициализирует привычных структур драйвера и не содержит никаких вложенных вызовов, просто-напросто возвращает управление с кодом STATUS_SUCCESS (EAX=0). И о чем нам это может говорить? Это говорит нам о том, что:

Сам по себе код classpnp.sys на этапе инициализации не является источником проблем, поскольку это библиотека для стороннего использования и процедура инициализации её исключительно формальна (предельно проста).

Такое возможно, однако требуется дополнительное подтверждение. Вспоминаем, что драйвер classpnp.sys является библиотекой класса устройств и его функции вызываются из других драйверов. Надо проверить все драйвера режима BOOT_START на предмет использования функций данной библиотеки. Судя по всему, функции библиотеки classpnp.sys на начальном «текстовом» этапе использует всего один-лишь драйвер disk.sys.

Между точками: инициализация драйвера disk.sys

Ну что же, тогда перейдем к драйверу disk.sys и проверить гипотезу о причастности его к подвисанию, с этой целью дизассемблируем и заглянем в код. Данный драйвер является драйвером класса дисковых накопителей и обеспечивает монтирование сконфигурированных в системе дисковых томов. В драйвере процедура инициализации (DriverEntry) выглядит уже намного сложнее, в ней мы обнаруживаем вызовы функции ClassInitialize, которая не является собственной внутренней функцией драйвера, а импортируется из библиотеки класса устройств classpnp.sys. Возможно что функция ClassInitialize может вызываться любым драйвером класса устройства при выполнении его собственной функции инициализации драйвера DriverEntry.

Один интересный момент: на экране (в списке) мы видим пункт с драйвером disk.sys ДО classpnp.sys, тем не менее, для того, чтобы disk.sys мог использовать некоторые свои функции, библиотека classpnp.sys должна быть УЖЕ загружена и инициализирована ДО загрузки и инициализации disk.sys. Этот факт лишний раз подтверждает, что та последовательность загрузки драйверов, которую мы наблюдаем на экране при запуске в защищенном режиме, всего-навсего отражает очередность загрузки драйверов/библиотек в память на этапе работы модуля загрузчика Winload, но никак не отражает очередность их инициализации на стадии ядра Ntoskrnl. Что, в свою очередь, укрепляет нас в предположении, что видимый нами последним на экране драйвер не обязательно является причиной подвисания!!

Хорошо, переключаемся на изучение исходного кода драйвера classpnp.sys и анализируем код функции ClassInitialize, а вот он то как раз ужасающе огромен :) Но ошибочные коды возврата все же удалось обнаружить:

  • Функция возвращает C0000059 (STATUS_REVISION_MISMATCH): в случае расхождения размера структуры InitializationData, фактически проверка версии файла classpnp.sys.
  • Функция возвращает C0000059 (STATUS_REVISION_MISMATCH): если требуемые поля структуры (фактически ссылки на соответствующие функции драйвера) нулевые (NULL).
  • Функция возвращает C000009A (STATUS_INSUFFICIENT_RESOURCES): если нулевое значение буфера RegistryPath.Buffer в расширениях driverExtension. То есть похоже не выделился буфер по каким-то причинам.
  • Функция возвращает C0000035 (STATUS_OBJECT_NAME_COLLISION): в любом ином случае.

Драйвер disk.sys обеспечивает функционирование стека устройств хранения в операционной системе Windows, и ниже данного драйвера в стеке располагаются:

  • драйверы многопутевого ввода-вывода (MPIO-драйвера, обеспечивающие доступность томов по нескольким путям) (mpio.sys и прч.);
  • драйверы порта (обеспечивает поддержку транспортного протокола: SCSI/SAS/SATA/ATAPI);
  • драйвер минипорта (обеспечивает функциональность контроллера на материнской плате);

Но, опять же, сам драйвер disk.sys на этапе функционирования ядра (ntoskrnl.exe) не может быть причиной зависания, поскольку тут он инициализируется: вызывается функция инициализации драйвера DriverEntry. А как мы видели выше, в процедуре инициализации в случае проблем возвращаются конкретные коды ошибок, которые будут выведены на экран в случае сбоя, что исключает «тихое» подвисание.

Что еще между точками?

Ну хорошо, помимо инициализации вышеописанных драйверов, что у нас еще расположено между найденными нами точками останова? Да там адская прорва кода!! Получается, что весь код, размещающийся от начала кода модуля ядра в функции KiSystemStartup и до окончания в функции Phase1InitializationDiscard (фактически всей фазы 1), может, потенциально, являться причиной изучаемого нами подвисания (в безопасном режиме). Да уж, тут, что называется, без комментариев!!
Но не все так страшно, как кажется на первый взгляд. В большинстве расположенного на этом участке кода ядра выполняется обработка возникающих ошибок, что тем или иным образом (в виде сообщений) становится известно пользователю. А вот где действительно могут скрываться «мертвые» зависания процесса загрузки, так это на стыке хорошо отлаженного кода ядра и кода сторонних драйверов (то есть на этапе загрузки/инициализации драйверов сторонних разработчиков). Судя по всему в ядре существуют несколько цепочек кода загрузки подобных драйверов:

  • Start = 0 (режим BOOT_START) : цепочка вызова функций IoInitSystemIopInitializeBootDriversPnpInitializeBootStartDriverIopInitializeBuiltinDriver;
  • Start = 1 (режим SYSTEM_START) : цепочка вызова функций IoInitSystemIopInitializeSystemDriversIopLoadDriverMmLoadSystemImage;
  • Start = 2 (режим AUTO_START) : цепочка вызова функций NtLoadDriverIopLoadUnloadDriverIopLoadDriverMmLoadSystemImage;
  • Start = 3 (режим DEMAND_START) : ???

Вот перечисленные то функции нам в первую очередь и интересны. В дополнение участвует функция MmLoadSystemImage, которая выполняет загрузку исполняемого образа драйвера в адресное пространство ядра (создает секции и производит связывание, заполняет таблицы импорта, перемещения, выполняет проверки безопасности и прочие задачи.). Еще одна функция IopLoadDriver работает с реестром, ответственная за открытие файла драйвера, создание объекта драйвера и передачу управления на точки входа (вызов процедуры инициализации DriverEntry). Для драйверов режима BOOT_START, функции IopLoadDriver и MmLoadSystemImage не участвуют в процессе, поскольку, как мы писали ранее, данные драйвера загружаются еще на этапе winload.exe.

Если предположить, что я допустил ошибку в оценке области подвисания, то в эту область еще должны входить последующие этапы, начиная с smss.exe и до самого logonui.exe. А мы знаем, что на этих этапах уязвимым для сбоев местом являются сервисы/службы режимов AUTO_START и DEMAND_START как загружаемые на схожих с драйверами принципах.

. . .

ПРОДОЛЖЕНИЕ СЛЕДУЕТ

. . .

Общие причины

Общие причины подвисания следующие:

  • установленное на станции железо: после загрузки общих библиотек/драйверов (в том числе и classpnp.sys) начинается перечисление устройств и загрузка драйверов к ним.
  • подключение системных томов: возможно ядро не может проинициализировать устройство (накопитель), на котором располагается один из сконфигурированных в системе разделов.
  • установленное на станции железо: возможно загрузка какого-либо драйвера устройства проводит первичную инициализацию устройства (через вызов инициализации драйвера и вложенных процедур), которая не может завершиться, подвешивая весь процесс запуска системы.

Частные причины [решения]

предположение: проблема как то связана с загрузочным носителем либо контроллером или шлейфом.. одним словом с дисковой подсистемой.
решения:

  • BIOS: перепрошивка BIOS на последнюю версию + сброс всех настроек в [Factory] Default (умолчание);
  • BIOS: замена механизма подключения дисков с AHCI → IDE (и наоборот);
  • BIOS: смена режима работы контроллера с Compatible (Legacy) Mode → Enhanced (Native) mode (и наоборот);
  • BIOS: смена режима загрузки CSM (Legacy) ↔ UEFI;
  • Железо: вышедшие из строя сторонние аппаратные модули (например: WIFI/Bluetooth/CardReader): отключение их в BIOS или (при возможности) физически на материнской плате;
  • Железо: попробовать использовать для загрузочного диска другой порт IDE/SATA на материнской плате;
  • Железо: в случае наличия в системе нескольких накопителей — поочередное отключение носителей (HDD/SSD);
  • Железо: заменить кабели данных/питания;
  • Железо: проверка утилитами SMART-мониторинга состояния основного загрузочного диска (замена в случае наличия существенных проблем);
  • Железо: проблема с модулями ОЗУ (RAM) + нестандартные настройки таймингов при использовании «нестандартных» модулей/разгоне;
  • ОС: загрузиться с LiveCD, подцепить реестр сбойной машины, в ветке HKLMSYSTEMCurrentControlSetservices пройтись по всем ключам и для каждого драйвера с параметром START = 0 проверить физическое наличие в файловой системе соответствующего файла.
  • ОС: загрузиться с LiveCD, подцепить реестр сбойной машины (ветка HKLMSYSTEMCurrentControlSetservices), пробежаться по всем ключам и для каждого драйвера этапа BOOT_START (список выше в статье) проверить чтобы параметр START был равен 0.
  • ОС: проверка файловой системы диска (команда: chkdsk c: /f /r);
  • ОС: подмена/повреждение драйверов этапа загрузки:
    • замена всего набора файлов classpnp.sys/disk.sys и остальных драйверов начальной загрузки из единого доверенного источника — работоспособной ОС аналогичной редакции (с сохранением старых, конечно же).
    • отключение проверки подписей драйверов. в меню начальной загрузки (клавиша F8 на старте) нужно отключить проверку подписей драйверов;
  • ОС: Разнообразные модификации ключевых структур разметки жесткого диска: например, сокрытие/отображение дисков при помощи сторонних утилит (Acronis);
  • ОС: Отключение любого ПО, способного вмешиваться в ранние этапы загрузки ОС: антивирусы, оптимизаторы, системы обнаружения вторжений и прочее подобное;

Выводы

При изучении некоторых функций модулей загрузки, я вышел на некий термин Adding Event Tracing to Kernel-Mode Drivers, вероятно возможность появилась начиная с версии Windows Vista. ETW и WPP — два инструмента диагностики для системных приложений (в том числе и драйверов). Интересно, можно включить через утилиту perfmon логгирование для classpnp/disk? Памятка: Группы сборщиков данных — сеансы отслеживания событий — ПКМ — создать — группа сборщиков данных — создать вручную (для опытных) — далее — в окне поставщики жмем добавить — Disk Class Driver Tracing Provider и Classpnp. Тем не менее, тут же возникает резонный вопрос: как это применимо к уже подвисающим станциям? Как на них можно включить логгирование и получить отчет?
К тому же, интересно, описанная в статье проблема зависания на classpnp.sys решена в Windows 10? И как та же логика реализована в Windows 10, имеются ли там «визуальные» зависания этапа загрузки и как изменился алгоритм обработки отказа в загрузке сторонних драйверов?

Понравилась статья? Поделить с друзьями:
  • Скачать counter strike global offensive на windows 7 32
  • Скачать classic start menu для windows 10 на русском
  • Скачать cortana для windows 10 на русском
  • Скачать classic shell меню пуск windows 10 как в windows 7
  • Скачать coreldraw для windows 7 через торрент