Приветствую! История такая (это к делу не относится, просто для полноты картины). Есть у меня древний комп с Win98, щас использую его очень редко, чтобы поиграть в старые игрушки. И там есть глюк: при загрузке Win98 в момент появления Рабочего Стола частенько зависает. Проявляется это как-то бессистемно: то зависнет, то нет. Если перезагрузиться несколько раз (обычно 2-4), то в конце-концов Win98 загружается. Я не обращал на это внимания, тем более что, как уже сказал, щас юзаю этот комп очень редко. Но вот что-то решил разобраться. Да, забыл сказать, что иногда (не всегда) зависон сопровождается синим экраном с мессагой "Ошибка в драйвере DRVWQ117".
В Internet нарыл инфу, что такой зависон может быть вызван конфликтом между драйвером накопителей на магнитных лентах (DRVWQ117 это он и есть) и звуком. Там предлагается несколько решений: отключить звук старта Windows, удалить файлы DRVWQ117.VXD, DRVWPPQT.VXD, DRVWCDB.VXD.
Но мне стало интересно, как вообще это работает. Почитав "Win98 Resource Kit" (это такая справочная CHM-ка), понял так (сразу оговорюсь, что не уверен, что понял верно!). Система ищет в реестре ветки с параметром "DevLoader", затем грузит драйвер, указанный (в найденной ветке) в параметре "PortDriver".
Вот как это изложено в "Win98 Resource Kit": « Configuration Manager attempts to find any device node that has a DevLoader= entry in the registry. The device loader (in the previous example, *Ios) examines the registry, finds the PortDriver= entry, loads the driver and any associated support drivers, and initializes the adapter. »
У меня в реестре как раз есть ветка:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\TapeDetection
с параметрами DevLoader, PortDriver, откуда, видимо, и грузится этот DRVWQ117.VXD
Я решил просто удалить саму ветку TapeDetection, но после перезагрузки она опять была в реестре! Так выходит, что я не правильно понял: не драйвер грузится через реестр, а драйвер при старте прописывается в реестр откуда-то извне? (Иначе почему там восстановилась удаленная ветка).
Если кто понимает всё это, можете объяснить? Как прибить загрузку этого драйвера магнитных лент?
[решено] Как убрать загрузку драйвера из …\Services\Class\?
-
EgorS
Re: [решено] Как убрать загрузку драйвера из …\Services\Class\?
Щас вот зашел сюда на OSzone (по другому поводу). Вспомнил про эту тему, как вижу, никто ничего путного не посоветовал, так что просто решил написать, что я сделал для преодоления зависона (см. описание в посте выше) -- может быть, кому-то пригодится
---
Итак. Я до конца так и не смог понять, как грузится драйвер: считывает ли его OS из реестра, или, наоборот, он при загрузке вписывается в реестр... Но удаление его веток не отключало драйвер: после перезагрузки его ветки опять были в реестре. Поэтому мне кажется, что фактом загрузки драйвера явл-ся само наличие его файлов в папке IOSUBSYS (предполагаю, что драйверы из этой папки грузятся автоматически). Таким образом, отключить загрузку драйвере можно, наверное, только физическим удалением его файлов.
Я удалил следующие файлы:
Код:
А также (на всякий случай) следующие ветки реестра:
Код:
После этого зависоны при загрузке прекратились
. Откуда я взял инфу, какие файлы удалять -- уже не помню, нарыл где-то в Internet…
---
Итак. Я до конца так и не смог понять, как грузится драйвер: считывает ли его OS из реестра, или, наоборот, он при загрузке вписывается в реестр... Но удаление его веток не отключало драйвер: после перезагрузки его ветки опять были в реестре. Поэтому мне кажется, что фактом загрузки драйвера явл-ся само наличие его файлов в папке IOSUBSYS (предполагаю, что драйверы из этой папки грузятся автоматически). Таким образом, отключить загрузку драйвере можно, наверное, только физическим удалением его файлов.
Я удалил следующие файлы:
Код:
Код: Выделить всё
C:\Windows\System\Iosubsys\DRVWPPQT.VXD
C:\Windows\System\Iosubsys\DRVWQ117.VXD
C:\Windows\System\Iosubsys\DRVWCDB.VXD
C:\Windows\Inf\PNPWPPT.INFА также (на всякий случай) следующие ветки реестра:
Код:
Код: Выделить всё
HKEY_LOCAL_MACHINE\Enum\TAPECONTROLLER
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\TapeDetectionПосле этого зависоны при загрузке прекратились