Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 95/98/Me (http://forum.oszone.net/forumdisplay.php?f=4)
-   -   [решено] Как убрать загрузку драйвера из …\Services\Class\? (http://forum.oszone.net/showthread.php?t=341814)

EgorS 14-08-2019 13:04 2883990

Как убрать загрузку драйвера из …\Services\Class\?
 
Приветствую! История такая (это к делу не относится, просто для полноты картины). Есть у меня древний комп с 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, но после перезагрузки она опять была в реестре! Так выходит, что я не правильно понял: не драйвер грузится через реестр, а драйвер при старте прописывается в реестр откуда-то извне? (Иначе почему там восстановилась удаленная ветка).

Если кто понимает всё это, можете объяснить? Как прибить загрузку этого драйвера магнитных лент?

EgorS 25-09-2021 19:20 2967513

Щас вот зашел сюда на OSzone (по другому поводу). Вспомнил про эту тему, как вижу, никто ничего путного не посоветовал, так что просто решил написать, что я сделал для преодоления зависона (см. описание в посте выше) -- может быть, кому-то пригодится

---

Итак. Я до конца так и не смог понять, как грузится драйвер: считывает ли его 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

После этого зависоны при загрузке прекратились :). Откуда я взял инфу, какие файлы удалять -- уже не помню, нарыл где-то в Internet…


Время: 19:55.

Время: 19:55.
© OSzone.net 2001-