Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Windows 98 SE (оптимизация и улучшение) — десятая часть

Модерирует : KLASS, IFkO

IFkO (04-01-2024 19:57):  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198

   

MERCURY127



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ПРЕДЫДУЩИЕ ЧАСТИ ТЕМЫ: _1_ · _2_ · _3_ · _4_ · _5_ · _6_ · _7_ · _8_ · _9_

Windows 98 Second Edition  
ДЕCЯТАЯ ЧАСТЬ


Особенности работы с Windows 9X/ME с учётом прогресса и деградации в программно-аппаратном обеспечении на 2022+ год. Основное в теме - это обновления для Windows 98SE, а так же готовая высокоинтегрированная сборка "всё включено" - Windows 98IF. Добрые люди собрали "неофициальные паки обновлений" - сборники заплаток, фиксов (преимущественно от M$), а также делают собственные патчи, призванные улучшить работу этой древней операционной системы.
Ранее в теме принимали участие: maxud, Simplestas.
Актуальные патчи, паки и сборки выкладывают: IFkO, Sweetlow, BolenB и другие неофициальные лица.


Заплатки и драйверы от Rudolph R. Loew (Web Archive)
Памятный сайт (rloewelectronics.com) и ещё одна страничка
без его великолепных патчей, утилит и драйверов эта тема давно бы кончилась...


Практические аппаратные и программные
пределы работоспособности Win98

(с учетом представленных в этой теме решений по состоянию на 2023 год)


Последние доступные обновления, паки, сборки, патчи, утилиты и драйверы:

  • Windows 98IF от IFkO - неофициальная модульная сборка Windows 98SE с предустановленными обновлениями, заплатками, улучшениями и дополнительными компонентами, или готовые варианты сборки.
     
  • Драйверы и компоненты для Windows 98SE или 98IF от IFkO, предназначенные для установки в систему и интеграции в дистрибутив.
  • Краткая и полная инструкции по сборке дистрибутива Windows 98IF.
     
  • Наборы от BolenB для интеграции обновлений в дистрибутивы Win95osr2, Win98, Win98se, WinMe - чтобы при установке сразу ставились все обновления. Сделано с помощью SLIPSTRM - Slipstreaming Updates into a Windows 9x Installation CD от Rudolph R. Loew.
     
    Обновления от Maximus Decim
  • Инструкция по правильной установке Windows 98SE от maxud (версия от 21.02.2009) со ссылками на недостающие компоненты. Альтернативные списки ссылок - здесь и здесь.
     
  • UnSP for Windows 98 Standard/First/Gold/RTM Edition (English by Petr & erpdude8): 2.58 RC Lite и 2.58 Final Full
  • UnSP for Windows 98 Second Edition: 3.61, 3.64 by Problemchyld
     
  • Revolutions Pack 9.7 by Simplestas (aka Tihiy) - замечательная адаптация скинов от Windows XP и Vista под Windows 98/ME (улучшенное оформление окон, новые иконки и эффекты, новая панель снятия задач, сглаживание шрифтов ClearType и многое другое)
  • Tihiy's Tools - коллекция бесплатных утилит для Windows 98/ME от Simplestas (aka Tihiy), включающая индикатор сетевых подключений в трее, удобную панель снятия задач, панель завершения работы от XP и другие инструменты.
  • KernelEx 4.5 Final Multilingual by Xeno86 - проект по модифицированию библиотеки kernel32.dll для обеспечения возможности запуска под Windows 98/ME программ и игр для XP. KernelEx4.5.2 - последняя версия  (он же, адаптированный HNKTO для дистрибутива Windows 98IF).
  • SH95UPD (Shell 95 Update Project) 0.0.8 by sp193 - проект по модифицированию библиотеки shell32.dll от Windows 95, используемой в урезанных версиях Windows 98/ME, для обеспечения лучшей совместимости с этими ОС, основан на исходниках от KernelEx.
     
  • Tweaked Unofficial NVIDIA Display Driver 82.69 for Windows 98/ME by MDGx - последние неофициальные драйвера для всей линейки видеокарт GeForce, 82.69 "fixed", (или модульный драйвер видеокарт nVidia от IFkO, включающий и 82.69)  
  • VBEMP x86 by bearwindows - универсальный (для любых видеокарт) VESA/VBE видеодрайвер для архитектуры Windows 9x.
  • ReadDVD! - драйвер для чтения дисков в формате UDF 1.5-2.x в Windows 95-ME (он же, пересобранный  IFkO).
  • Panasonic DVD-RAM Driver - универсальная поддержка записи DVD-RAM дисков, оригинал и обновление от BHA
     
  • RASPPPoE - сетевой протокол PPP over Ethernet для Windows 95-2003 (RFC 2516 для подключения ADSL/GPON без роутера), скачать тут, (он же, в одном пакете с сетевыми драйверами от IFkO)
  • Active Directory Client Extensions (dsclient.exe) 5.0.2920.5 Russian (Q323466) - клиентское ПО для получения доступа из Windows 95-ME к службам Active Directory и DFS операционной системы Windows 2000 Server.
  • Microsoft Windows 95, Windows 98, MS-DOS и другие Resource Kits - комплекты утилит, не входящих в основную поставку вышеуказанных систем.
     
  • VirNETas Regional Settings Changer 3.04.0246 - мощная программа для изменения региональных настроек в английских версиях Windows 95/98, оптимизирована для работы с Windows 98SE (спасибо Grigorijg), подробное описание внутри архива.
  • Microsoft Plus! for Windows 98 - пакет дополнительных программ и тем оформления рабочего стола.

    Навигация по топику и ссылки на интересные статьи по теме:

    Для просмотра всех сообщений темы в одном окне пользуйтесь "версией для печати" (одноименная ссылка над нумерацией страниц)

  • Windows 9x + RAM > 512 Мб - обзор всех существующих способов решения проблемы + исчерпывающая статья с сайта iXBT (aka матчасть) + версия Microsoft (статьи KB184447, KB253912, KB304943 в вольном переводе от maxud)
  • Сбрось память на диск - статья о работе Windows 9x с виртуальной памятью, дисковым кэшем и файлом подкачки + авторская версия.  
    Самая свежая версия LIMEM с исходниками
  • Как изменить "GENERIC IDE DISK TYPE 47" в списке устройств на реальное имя диска на чипсетах Intel, VIA и SiS + DMRP (Drive Model Reading Patch) от MERCURY127 - патч ядра для любых чипсетов, версий и языков Windows 98/SE/ME (не для 95!).
  • Как установить "Intel Ultra ATA Storage Driver" и "Intel Application Accelerator" на чипсеты Intel 430/440. (подробнее)
  • Все, что нужно знать о доступе к локальным томам NTFS из под систем 9х
  • Большая коллекция разнообразных обновлений и патчей для Windows 95-ME (и не только)
  • Последние Microsoft Windows Hardware Compatibility Lists (HCLs) для NT/95/98/SE/ME/2K/XP
  • Обсуждение Windows 95-ME на форуме MSFN
  • Сайты с программами и играми, совместимыми с Windows 98: Old-DOS.ru, Old-Games.ru, OldVersion.com, MIRRORS.PDP-11.RU

  • Сайт с описанием всевозможных опций основных BIOS, в т.ч. с подсказками по правильному выбору опций для 9х

    "ЛИЧНЫЕ КОЛЛЕКЦИИ ПОЛЕЗНОСТЕЙ" УЧАСТНИКОВ ТОПИКА

  • Неочевидные инструкции для редких ситуаций
     
  • Коллекция MERCURY127 - разное добро, на которое он иногда ссылается. пароль на архивы 1 (единица), если другое не указано явно.
  • Коллекция SweetLow, на которую он иногда ссылается

    НЕАКТУАЛЬНОЕ И УТЕРЯННОЕ

    В этом разделе будет то, что уже никому не нужно или нигде не найти...

  • UnSP (Unofficial Service Pack) for Windows 98SE by Alper Coskun (aka Gape). Список отличий MDCU от UnSP.
  • SciTech SNAP Graphics - универсальные кроссплатформенные драйверы для широкого спектра видеокарт. жадное, глючное, мертвое.
  • Несколько советов по использованию Windows Update

    Схожие темы по Windows 95 и Windows ME :: Тема в Варезнике

    Рекомендуемый Хостинг картинок

  • Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 23:36 31-12-2021 | Исправлено: IFkO, 21:35 04-12-2023
    logins

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нет. Сейчас попробую ещё с этими файлами.
     
    Добавлено:
    MMDEVLDR.VxD в архив не попал (Он лежит в папке SYSTEM).
     
    Добавлено:
    Не, с вашим NTKERN тоже самое:
     
       
     
    Если только действительно этот MMDEVLDR какой-то особенный... Если нет, значит, что-то ещё влияет. Но что именно? Или может не отрабатывает WDMEX?
     
    Я тут попробовал ещё установил дискретный USB1.1\2.0 OHCI контроллер, на который драйверы из коробки встают. Всё тоже самое. Девайс подключается к USB 1.1 автоматически, штатные драйверы из коробки встают ровно (Но устройство не появляется в Multimedia, хотя и появляется на другой вкладке - Multimedia > Devices > Audio Devices и выбрано "Use audio features on this device". Однако, на вкладке "Audio" - Playback - Preferred device: оно в списке не появляется. Нельзя его выбрать и в отдельных программах) . С вашим драйвером как на скриншоте выше (То есть вообще не заводится). Первая проблема (Со штатным драйвером), как мне представляется, обусловлена некими особенностями современного железа (Подобное наблюдалось и с некоторыми PCI аудиокартами, в сочетании с WDM драйверами). Обходит её по идее более современный драйвер от Windows XP (Который вы прикрутили), но в моём случае не заводится по какой-то иной причине (Но не версия NTKERN - это уже проверено). Что ещё там может влиять? Короче запутанная проблема.
     
    Добавлено:
    На древнем ПК (по Intel i865PE включительно) с 99% вероятностью оно заработает и со штатным драйвером из коробки. Проблема здесь похоже именно в более позднем железе, в котором чего-то уже поменяли на уровне чипсета и южника. В Windows XP это уже учтено, потому и драйвер работает (Только завести под 9х его сложно). Может здесь WDMEX у меня не работает. Как проверить что он всё что от него требуется выполняет, а не бездействует?

    Всего записей: 757 | Зарегистр. 05-08-2011 | Отправлено: 19:39 14-05-2023
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Поставь 98иф, тогда можно будет продолжить разговор по существу.  
    На этой точно работает.  
    https://disk.yandex.ru/d/_OwjNyxiwTYlLQ

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 20:43 14-05-2023
    logins

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MERCURY127, проверить бы, что если заменить текущий USBAUDIO.SYS на тот, что в WinME. Будет ли с ним звук (И заведётся ли он вообще). Затем повторить тоже самое с USBAUDIO.SYS от Windows 98SE (Посмотреть, появится ли девайс в Multimedia и в частности, на вкладке Devices>Audio Devices). Вроде для этого даже перезагрузка не требуется (Только переткнуть девайс). Эти драйверы подхватываются на лету. Затем вернуть изначальный и проверить, вернулся ли звук (И появился ли девайс в Multimedia).

    Всего записей: 757 | Зарегистр. 05-08-2011 | Отправлено: 20:44 14-05-2023
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Проверял ведь уже...

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 20:51 14-05-2023
    logins

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Поставь 98иф, тогда можно будет продолжить разговор по существу.

    А чем это может здесь помочь? Тут ведь в совместимости с 98FE очевидно проблема, коли в XP оно работает без нареканий и в 98IF кстати тоже. Аналогично ведь было изначально и с драйвером для USB 2.0 от SweetLow. Там именно с самим драйвером что-то надо было сделать, что бы оно заработало и я это понимал изначально (Но была небольшая надежда, что может быть и так заведётся). Смысл повторно в IF проверять, если уже проверено? Цель ведь, что бы оно именно в 98FE работало (Которая у меня и используется в качестве основной). Насколько она достижима - вот вопрос.
     
    Добавлено:
    Я наверно в виртуалке позже проверю (VirtualBox вроде бы как раз умеет проброс USB). Заодно и в оригинальной SE.
     

    Цитата:
    Проверял ведь уже...

    То есть ни от ME, ни от SE этот драйвер не заработал? Или заработал, но устройство не появлялось в Multimedia? Какие были симптомы?

    Всего записей: 757 | Зарегистр. 05-08-2011 | Отправлено: 21:01 14-05-2023 | Исправлено: logins, 21:18 14-05-2023
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Тем, что на ней всё проверено мною лично. А что там накуролешено в твоём колхозе из fe, kex и ещё хз чего неведомо откуда - никто не знает.
     
    Добавлено:

    Цитата:
    Какие были симптомы?
    всё есть, звука нет, везде ошибки, всё страшно тормозит...
     
    Добавлено:

    Цитата:
    Я наверно в виртуалке позже проверю (VirtualBox вроде бы как раз умеет проброс USB)
    нет уж, будь любезен, проверяй на железе, не хватало мне еще глюки вбокса разгребать.
     
    Добавлено:

    Цитата:
    Цель ведь, что бы оно именно в 98FE работало
    у меня цель была, чтоб в 98ИФ был звук там, где его больше никак не получить (ХДА так и не завели нормально, совместимых ПЦИе звуковушек под 9х... ровно одна, и та без гарантии). а уж с ФЕ будешь разбираться сам, раз она тебе так нужна.

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 21:20 14-05-2023
    logins

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ну тогда тут собственно без вариантов. Только SweetLow мог бы попробовать помочь здесь, потому как именно ему удалось ранее проделать аналогичное с USB драйвером, что он стал работать и в FE. Других специалистов такого уровня, способных перекомпилировать USBAUDIO.SYS из исходников WinXP так, что бы оно работало и под FE, я не знаю. Поэтому, если он сам не найдёт желание\время заняться этим, надежд не остаётся совсем. Я здесь только готов тестировать в оригинальной FE на реальном железе. Так что можно положить эту USB звуковуху на полку и забыть

    Всего записей: 757 | Зарегистр. 05-08-2011 | Отправлено: 16:27 15-05-2023 | Исправлено: logins, 16:33 15-05-2023
    SweetLow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    logins

    Цитата:
    что он стал работать и в FE

    Я напоминаю, что микрософт официально отказался от поддержки WDM Audio в оригинальной 98. Это не значит, что там ничего не работает, это значит, что если там что то НЕ работает - то это нормально.

    Всего записей: 1013 | Зарегистр. 08-03-2005 | Отправлено: 09:03 16-05-2023
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SweetLow, кстати...  
    1) код 2 - это же "драйвер загрузился нормально, но не нашел свое устройство" ?
    2) нет ли более свежих версий "Microsoft Smart Card Base Components" и "Smart Card Driver Library", чем 98 года? понятно, что часть можно надергать из NT/2K/XP, но SMCLIB.VXD там нет...
    3) как все таки удалить импорт из PE файла? именно из секции импорта!
    допустим, я заменил ZwFlushKey заглушкой прямо в коде драйвера, но не найденный импорт все равно не даст ему загрузиться, даже для простой проверки.

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 11:07 16-05-2023
    BolenB



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ковыряюсь в загрузчике Win98se io.sys (первые 4 сектора, 2048 байт, MSLOAD).
    Мои наблюдения:
    В MZ хеадере важны только «MZ» ( шестнадцатеричное : 4D 5A) в начале файла (« магическое число ») и длина файла в параграфах по смещению 08h, остальные параметры можно занулить, как в загрузчике от WinMe.
    Для загрузки io.sys надо прописать количество параграфов по смещению 08h, и не абы сколько, а вместится в определёный диапазон.
    Пропишем меньше - io.sys загрузится не полностью, пропишем больше - зависнем.
    Как считать: Сектор = 512 байт, параграф = 16 байт, 2048 = 4 сектора, 1536 = 3 сектора.
    Берем наш обрезаный io.sys размером 122896 байт.
    122896 / 512 =  240.03
    Округляем в большую сторону, до 241 сектора.
    241 * 512 = 123392 байт (сколько файл занимает секторов).
    123392 - 2048 = 121344 (1DA00h) / 16 (10h) = 1DA0h + 1 = 1DA1h
    123392 - 1536 = 121856 (1DC00h) / 16 (10h) = 1DC0h
    Вот в этих пределах (1DA1h - 1DC0h) надо прописывать количество параграфов.
    Если пропишем < 1DA1h то io.sys загрузится не весь. Если пропишем 1DA0h не загрузится последний сектор (потеряется 16 байт в конце io.sys)
    Если пропишем > 1DC0h то зависнем (из-за бага, загрузчик не может найти в FAT 0FFFFFFF8 end of cluster mark (EOC),пугается и зависает.
     
    В WindowsMe этот баг (или особенность) пофиксили и можно указывать > 1DC0h, загрузчик сам считает сколько надо байт, лишнего не загрузит.
     
    Перенес fix из ME в Win98 загрузчик.
    https://disk.yandex.ru/d/QsV_Qiz9VgupBA

    Всего записей: 673 | Зарегистр. 22-12-2003 | Отправлено: 13:14 16-05-2023 | Исправлено: BolenB, 04:46 19-05-2023
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Зачем, если можно перетащить весь мешный загрузчик?

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 13:21 16-05-2023
    BolenB



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MERCURY127

    Цитата:
    Зачем, если можно перетащить весь мешный загрузчик?

    А просто захотелось.
    Кстати в IOPAK.8 вы используете ME загрузчик с дискеты ebd (патченный).
    Можно было взять загрузчик от io.sys с корня диска c:
    Там ничего патчить не надо, грузит и с флоппи и с hdd.
    И там везде натыканы cli sti (аж на микросекунды быстрее грузится будет  )  
     
    Добавлено:
    Началось всё с упаковки io.sys, загрузчик это так, вылез в процессе.
    В общем решил я изобрести велосипед (есть же IOPAK.8), упаковать io.sys по простому без добавок и оверлеев. Мозолили мне глаза pusha и popa в IOPAK.8, нафига столько регистров сохранять, может можно обойтись меньшим количеством? Оказывается можно.
    Патчим точки входа, упаковываем: apack -1 -h io.exe io.exe
    После упаковки надо пропатчить 4 байта:
    push ds -> push dx
    push es -> push bx
    .........................
    pop es -> pop bx
    pop ds -> pop dx
     
    Меняем загрузчик, правим количество параграфов и упакованый io.sys работает (во всяком случае с win95osr2 - WinMe).
    Для старых dos-ов регистр cx еще используется,скорее всего не взлетит. Вариант не универсален но для меня достаточен.  

    Всего записей: 673 | Зарегистр. 22-12-2003 | Отправлено: 13:30 16-05-2023 | Исправлено: BolenB, 17:54 16-05-2023
    logins

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SweetLow

    Цитата:
    Я напоминаю, что микрософт официально отказался от поддержки WDM Audio в оригинальной 98. Это не значит, что там ничего не работает, это значит, что если там что то НЕ работает - то это нормально.

    В данном конкретном случае, речь идёт об устройстве, которое поддерживается в FE официально. Я вчера проверил в оригинальной чистой Windows 98 FE на виртуальной машине и вот результат (Штатные драйверы из состава Windows 98 FE встали автоматически как на сам USB, так и на аудиодевайс):
     
       
     
    Пришлось загружаться в XP, что бы это проверить с помощью VMWare 4.5.2 в которой реализован проброс USB. И там эмулируется очень старое железо и естественно оно корректно устанавливается. А проблема здесь только в том, что и у меня и у MERCURY127 слишком новое железо для Windows 9x. Отсюда и проблема. Но USBAUDIO.SYS от Windows XP, который удалось прикрутить, каким-то образом нормализует совместимость с новым железом.
     
    Добавлено:
    Но вот под FE он отказывается работать, ровно с теми же симптомами, с которыми ранее не работал ваш USBHUB20.SYS. Но потом, после исправления, USBHUB20.SYS заработал и в оригинальной FE (С полностью оригинальными файлами). Очень похоже, что и с USBAUDIO.SYS похожая история (Что-то в нём немного не так, вплане совместимости с FE). Если предположение верно, возможно ли собрать USBAUDIO.SYS, что бы под FE тоже работал (А не только в SE\IF)?
     
    Добавлено:
    Иными словами, проблема не в том, что устройство не работает, а в том, что драйвер не запускается в FE (По тем же наверно причинам, по которым ранее не запускался и USBHUB20.SYS). И если без ошибок запустится драйвер, запустится и устройство. Видимо так.

    Всего записей: 757 | Зарегистр. 05-08-2011 | Отправлено: 16:30 16-05-2023 | Исправлено: logins, 17:05 16-05-2023
    IFkO



    Moderator
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ВСЕМ:
    Я опять о своём: ещё дополнил таблицу вариантов сборки. Отмечу следующее:
    1. Speech API. Теперь в максимальной сборке есть они оба - и четвёртый, и пятый. Это реально работающий вариант, и он был предусмотрен в моих препарированных компонентах, но раньше ни в одном готовом варианте сборки его не было. А в сборке IF/2 теперь будет SAPI, но без речевого движка. Ибо движки все сторонние, MS-овских русскоговорящих я не знаю. По моим ссылкам SAPI4+Digalo - это оптимальный вариант, вошедший в референц-сборку. Кто хочет покомбинировать - берите SAPI4+SAPI5+ELAN, в этом пакете предусмотрены все остальные варианты установки: SAPI4+ELAN, SAPI5+ELAN, SAPI4+SAPI5+ELAN, SAPI5 без речевого движка.
    2. ICE Book Reader обновлён до версии 9.10 с дополнением  - кучей обложек. Это существенно - теперь его можно связать с совместимыми типами файлов, и выбирать файл для чтения прямо в Проводнике, а не только в его собственной библиотеке! Дождалися наконец...
    3. Internat. В какой-то из старых сборок 98-й я нашёл АЛЬТЕРНАТИВНЫЙ Internat, очень компактный. Происхождение выяснить не сумел, но в "альтернативную" сборку включил.
    4. Web-based Enterprise Management (WBEM) - рискнул включить в "максимальную" сборку его обновление - Windows Management Instrumentation (WMI) версии 1.50 с последующими заплатками. Хотя и не понимаю, зачем оно вообще нужно. Да и ставится эта приблуда с такой натугой, что из-за неё я даже заменил индикатор хода установки системы на ME-шный, чтобы не казалось, что всё зависло. Именно поэтому в сборке IF/2 остаётся старый добрый WBEM. Но кому интересно именно WMI - можете взять по ссылке, оно подготовлено для вклеивания в дистрибутив не только моей сборки, но и SE.
     
    Остальные изменения в этой пачке компонентов несущественные.

    Всего записей: 6886 | Зарегистр. 22-09-2005 | Отправлено: 17:46 16-05-2023 | Исправлено: IFkO, 22:32 16-05-2023
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    как все таки удалить импорт из PE файла? именно из секции импорта!

    Надо пересобрать секцию импорта. Я не знаю программ, которые бы это делали автоматически (хотя, может, такие и есть). Предложу три метода, как это сделать вручную.
    1. Забить в hex-редакторе имя импортируемой функции любым другим, имеющимся в этой библиотеке и имеющим такое же по длине или более короткое имя. Если эта функция будет вызвана, то можно перехватить её вызов в отладчике и подправить возвращаемое значение и стек. Этот метод быстр, но годится только для разового применения.
    2. Забить в hex-редакторе имя библиотеки другим, нестандартным. Например, KERNEL32 -> KERNEL98. Затем написать эту библиотеку, в которой нужная функция будет всегда возвращать ошибку (или другое приемлемое значение), а остальные будут перенаправляться в оригинальную библиотеку. Перенаправление делается на уровне MAP-файла, код писать не нужно. Список импортируемых функций можно получить из утилиты dumpbin. В общем случае проблемную функцию можно реализовать заново. Кстати, примерно так работает UNICOWS.
    3. Загрузить программу в дизассемблер, сохранить листинг и попробовать его скомпилировать. Если это получится, можно будет в листинге позаменять вызовы проблемной функции на заглушки. Желательно, чтобы длина кода при этом не поменялась.

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 18:20 16-05-2023
    SweetLow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MERCURY127

    Цитата:
    1) код 2 - это же "драйвер загрузился нормально, но не нашел свое устройство" ?

    Не знаю. Как-то не интересовался, что за коды ошибок в 9x там показываются. Надо посмотреть.
     

    Цитата:
    2) нет ли более свежих версий "Microsoft Smart Card Base Components" и "Smart Card Driver Library", чем 98 года? понятно, что часть можно надергать из NT/2K/XP, но SMCLIB.VXD там нет...

    Не видел. В DDK раздел с описанием есть, но про обновления не говорится. В QFE таких файлов не было. Тоже надо поискать будет.
     

    Цитата:
    3) как все таки удалить импорт из PE файла? именно из секции импорта!
    допустим, я заменил ZwFlushKey заглушкой прямо в коде драйвера, но не найденный импорт все равно не даст ему загрузиться, даже для простой проверки.

    Мин херц, мы же вроде это уже обсуждали? Зачем удалять, достаточно заменить существующей.
     
    logins

    Цитата:
    Иными словами, проблема не в том, что устройство не работает, а в том, что драйвер не запускается в FE (По тем же наверно причинам, по которым ранее не запускался и USBHUB20.SYS)

    Из чего следует что по тем же? Я лично не видел, чтобы вы проверили импорт на 98FE.

    Всего записей: 1013 | Зарегистр. 08-03-2005 | Отправлено: 11:14 17-05-2023
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Зачем удалять, достаточно заменить существующей.
    чтоб 4 байта после FF 15 использовать для дела...

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 12:00 17-05-2023
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    чтоб 4 байта после FF 15 использовать для дела...

    Если CALL NEAR PTR [ZwFlushKey] всё равно забивается другим кодом, достаточно заменить имя "ZwFlushKey" в таблице импорта на "DbgPrint\0\0". Ещё по размеру подходят DbgPrompt и RtlUnwind - им по одному нулю добавить до нужной длины.
     
    Добавлено:
    А вообще в ntdll 4.10.0.1998 жалких 52 функции - при желании можно переписать всю дллку и добавить туда ZwFlushKey. Я не утверждаю, что так надо делать, но это вполне осуществимо.

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 13:49 17-05-2023
    MERCURY127



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да понятно, что можно начать писать wdmex2.vxd, куда насовать забытое Рудольфом... Тем более, что пока не очень то и много таких заглушек нужно.
    Но мне все же хочется иметь ещё один, запасной вариант решения проблемы.

    Всего записей: 11564 | Зарегистр. 03-08-2008 | Отправлено: 14:33 17-05-2023
    uShell

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Изучил я этот ntdll. Опять Microsoft кое-где наваяли поперёк своих же мануалов.
    Из функций для работы с "кучей" реализованы две или около того (вызовом соответствующих функций из kernel32), остальные забиты заглушками. Ну ладно, имеют право, но ведь заглушки не возвращают даже паршивого STATUS_NOT_IMPLEMENTED, оставляя eax неизменным! Заглушка забита и для RtlAnsiStringToUnicodeString/RtlUnicodeStringToAnsiString: они не умеют выделять память под принимающую строку и возвращают ошибку, если от них это потребовать, но код ошибки неправильный (STATUS_INVALID_PARAMETER_2 вместо STATUS_INVALID_PARAMETER_3). Эта же парочка транслирует юникод в ANSI и обратно тупой конвертацией между signed short и signed char, то есть всё, что выходит за рамки ASCII, конвертируется в ерунду! Значит, позвать HeapReAlloc() из кернела мы умеем, а MultiByteToWideChar() уже нет? Оптимизаторы, блин.
     
    Поскольку некоторые Rtl-функции имеют полные (параметры и возвращаемые значения совпадают) аналоги в kernel32, я решил не реализовывать их вовсе, указав в таблице экспорта не ссылку на код, вызывающий соответствующий аналог из kernel32, а имя этого аналога. В NT так и сделано, только наоборот - некоторые функции не реализованы в kernel32, а сразу ссылаются на ntdll. Но с этим вышел облом: линкер из Visual Studio 6.0 наотрез отказывается прописывать такой экспорт. То ли линкер намекает, что загрузчик Win9x такой трюк не поддерживает, то ли он просто тупой - пока не знаю.

    Всего записей: 1015 | Зарегистр. 12-06-2019 | Отправлено: 18:51 17-05-2023
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Windows 98 SE (оптимизация и улучшение) — десятая часть
    IFkO (04-01-2024 19:57):


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru