Hibernate — как много в этом звуке… муки
Теория
К большому сожалению для всех пользователей персональных компьютеров, среди производителей железа и ПО все ещё царит разброд и шатание. Каждый новый компьютерный стандарт рождается в муках и борьбе с конкурирующими фирмами, пытающимися продвигать свои собственные разработки вместо того, чтобы ко всеобщей пользе договариваться о единых спецификациях. За примерами далеко ходить не надо — достаточно вспомнить всё тот же DVD или безуспешные попытки найти универсальную замену дешёвому, но давно изжившему самого себя флопповоду.
Когда подобные дрязги касаются отдельных блоков ПК — это ещё полбеды, гораздо хуже, если чёткого следования стандартам не наблюдается среди разработчиков основы компьютера — материнской платы. Так, подавляющее большинство современных материнских плат считаются ACPI-совместимыми. На деле же оказывается, что они поддерживают лишь некоторый набор стандартов этого интерфейса, оставляя за кадром часть других его рекомендаций. Отчасти именно по этой причине одним из самых часто задаваемых пользователями вопросов сегодня является «Почему у меня не работает Спящий режим?».
Но обо всём по порядку. Не так давно на смену систем с APM — Advanced Power Management (Расширенное управление питанием) пришли компьютеры, разработанные с учётом новой спецификации ACPI — Advanced Configuration and Power Interface (Расширенный интерфейс конфигурирования ПК и управления питанием). ACPI — не ОС или программа. Это — некий межплатформенный интерфейс или набор рекомендаций, т.н. «спецификаций», которые были приняты рядом ведущих компьютерных компаний (Intel, Microsoft, Toshiba и Phoenix) чтобы добиться стандартизированного и улучшенного метода конфигурирования и управления питанием в компьютере. Начальный акцент касался, конечно, портативных ЭВМ, для которых рациональное управление питанием было одной из главных задач, но с появлением Windows 98 это нововведение коснулось и PC. В сегодняшних моделях компьютеров благодаря ACPI назначаются прерывания и распределяются ресурсы между различными устройствами, система получает информацию об их функционировании, используются различные энергосберегающие режимы. Таким образом, главная задача ACPI — обеспечение взаимодействия между ОС, аппаратными средствами и системным BIOS. Однако по не вполне понятным причинам (а, вернее, всё из-за того самого разброда) решается она в действительности не лучшим образом, что особенно ярко проявляется в отношении новомодного энергосберегающего режима Hibernate (Спячка).
Но для чего, собственно, нужны все эти прибамбасы со снижением потребления электричества? Отчасти это дань усилиям всевозможных экологических организаций и законов, направленных на охрану окружающей среды. Однако для пользователя главное их достоинство состоит именно в управлении питанием, в возможности очень быстро привести компьютер в работоспособное состояние после длительного перерыва. Согласитесь, чрезвычайно удобно, если система готова пробудиться за несколько секунд, чтобы принять входящее обращение по телефону или ответить на запрос по локальной сети. В перспективе это даёт возможность системе автоматически включать и выключать не только периферийные устройства типа CD-ROM, сетевых плат, жёстких дисков и принтеров, но и внешние бытовые приборы, связанные с ПК типа видеомагнитофонов, телевизоров, телефонов и стереосистем. С этой технологией и сами периферийные устройства могут активизировать ПК. Например, установка кассеты в видеомагнитофон может включить компьютер, который, в свою очередь, активизирует телевизор и аудиосистему домашнего кинотеатра.
Вряд ли есть смысл распространяться о преимуществах, недостатках и особенностях нового стандарта — более подробную информацию о взаимосвязанных технологиях ACPI, SIPC и OnNow вы найдёте в Интернете, например, на сайте www.microsoft.com/
Hibernate
На сегодня имеются два наиболее продвинутых режима энергосбережения: во-первых — это Suspend To Ram (STR), при котором останавливаются жёсткие диски, выключается монитор, мощность, подводимая к большинству компонентов, уменьшается (или снимается совсем), работа CPU приостанавливается, и в идеале — только RAM остаётся активной, сохраняя все наработанные до перехода в Suspend данные. Потребление энергии, таким образом, достигает минимума, но при первом же обращении к ПК, например, при движении мышью или входящем звонке, он «просыпается» и готов к работе уже через пару секунд. В результате становится возможно во многих случаях избежать длительной и утомительной процедуры загрузки ПК после его полного выключения. Однако если в этом режиме пропадёт электропитание или у ноутбука разрядятся батареи, то все данные из памяти будут потеряны, что не есть хорошо. К сожалению, в настольных компьютерах полностью этот режим не часто реализуется из-за того, что многие материнские платы не умеют обесточивать все компоненты ПК по отдельности, поэтому вместо него используется более простой Ждущий режим (Stand By), при котором и с некоторых других устройств помимо RAM питание не снимается.
Но, дабы избежать неожиданной потери данных при разрядке аккумулятора, в переносных компьютерах появилась более подходящая для ноутбуков функция Suspend To Disk или Hibernation — Спящий режим, при переходе в который вся информация из оперативной памяти записывалась в специальный файл или раздел на жёстком диске, после чего снималось питание вообще со всех узлов ПК без исключения. При последующем включении компьютера после прохождения стандартной процедуры проверки POST происходила не загрузка ОС, а недолгое считывание этого файла, в результате чего Рабочий стол системы восстанавливался точно таким же, как он был перед выключением ПК — запущены все те же приложения и открыты документы, с которыми пользователь работал до перехода в «спячку». Разумеется, времени на пробуждение уходило в этом случае больше, чем при переходе в Suspend, но всё равно гораздо меньше, чем на полноценную загрузку системы и всех используемых приложений.
В ноутбуках это достигалось средствами BIOS. С выходом же Windows 2000 и Windows Me Спящий режим стал поддерживаться не только BIOS, но и самой ОС (т.н. OS-controlled ACPI S4 sleep state, те есть контролируемый ОС режим ACPI S4, то есть Hibernate), при этом для Windows гораздо предпочтительнее её собственный механизм управления электропитанием, чем то, что даёт BIOS. В принципе, Спящий режим может присутствовать и на системах с Windows 98, но это происходит очень редко, поскольку здесь, как в случае с ноутбуками, необходима его реализация на уровне BIOS, в котором дело часто ограничивается лишь режимом Stand By. Аналогично не обязательно (но желательно) наличие и самого ACPI-совместимого BIOS, так как на некоторых старых системах, оснащённых только APM, Hibernate вполне успешно работает, в частности, если используется Windows 2000, чуть более качественно управляющая этим режимом. В общем, условий много, и всё так запущено…
И вот именно этот, граничащий с шаманством Спящий режим является самым лакомым куском новой технологии для многих пользователей ПК. Конечно, в Windows Me всё равно приходится несколько раз в день полностью перезагружать ПК из-за нестабильности ОС и приложений для неё, но вот в Windows 2000 вполне реально месяц-два погружать ПК исключительно в «зимнюю спячку», забыв о его выключении. Если учесть, сколько времени грузится «винтукей», то польза Спящего режима очевидна.
Таким образом, если ваш ПК достаточно современный, и фортуна не повернулась к вам задом, то режим Hibernate уже присутствует в вашей системе — его надо только включить. Для этого в диалоге «Параметры электропитания» (Power Options) Панели Управления на вкладке «Спящий режим» (Hibernation) просто установите флажок, разрешающий использование этого режима. Теперь внимание! Сразу после этого сделайте резервную копию реестра, запустив, например, системную утилиту Scanregw.exe
, производящую резервирование после проверки реестра на ошибки. Дело в том, что Спящий режим также легко потерять, как и включить. Теперь, в меню «Пуск» жмите «Выключить компьютер» и выбирайте опцию «Спящий режим». Компьютер погрузится в сон. Через пару минут (быстрое повторное включение вредно для жёстких дисков) попробуйте его разбудить, нажав кнопки на клавиатуре или пошевелив мышью. Повторите эту процедуру несколько раз. Если всё благополучно и претензий к этому режиму нет, то дальше читать не обязательно. Если же ПК в целом или отдельные его компоненты ведут себя нестабильно, то вы — мой клиент 🙂.
Очень возможен также вариант, когда в «Параметрах электропитания» вообще не окажется вкладки, отвечающей за Спящий режим. В этом случае отчаиваться не стоит, так как всё-таки имеется возможность добиться её появления.
Предварительная проверка совместимости
Итак, если вкладка «Спящий Режим» отсутствует, то, во-первых, посмотрите, установлена ли поддержка ACPI, одно из главных условий полноценной работы Hibernate в вашей системе. Дело в том, что при инсталляции Windows ACPI автоматически устанавливается только на те ПК, которые имеют ACPI-совместимый BIOS, известный Windows и датированный после 12/01/1999. Для этого откройте Панель управления → «Система» → «Устройства» → «Системные устройства» («Control Panel» → «System Properties» → «Device Manager» → «System Devices»), выберите способ отображения устройств «by connection» (по подключению) — и если самым первым устройством окажется Advanced Configuration and Power Interface (ACPI) BIOS, то ACPI установлен. Большинство других аппаратных средств должно быть скрыто позади плюса «+», кроме «Поддержки процессора» («Processor support») и «Системной платы» («System board»), а также Сетевых адаптеров («Networking Adapters»). Все другие элементы, находящиеся вне плюса — ACPI-несовместимые аппаратные средства, то есть они не управляются ACPI и могут вызвать некоторые проблемы. Если же это не так, и ACPI на вашей системе не установлена, то можно попробовать установить поддержку ACPI вручную. Но об этом позже, а пока начнём с определения того, что ещё является обязательными условиями поддержки Спящего режима, цели наших исследований:
- BIOS поддерживает ACPI или APM 1.2;
- аудиодрайверы стандарта WDM (отсутствуют VxD-драйвера);
- драйвера модема стандарта WDM; совместимый с APM драйвер сетевой карты;
- отсутствие SCSI-контроллера (касается только Windows 9x, в Windows 2000 контроллер может быть);
- отсутствие устаревших видеокарт и устройств захвата видео;
- WebTV® for Windows не должна быть установлена;
- Internet Connection Sharing (ICS) не должен быть установлен;
- драйвер видеокарты с поддержкой Hibernation.
На самом деле, всё это очень зыбко, и даже если BIOS материнской платы полностью поддерживает ACPI, то совсем не обязательно, что весь ПК совместим с этой спецификацией, так как в нём могут быть установлены устаревшие устройства, не совместимые с каким-либо режимом ACPI. Поэтому желательно также проверить соответствие всей системы стандарту ACPI с помощью утилиты ACPIHCTv1.61, имеющейся на сайте www.microsoft.com/
Больше всего проблем с Hibernate в Windows Me (если не считать Windows 98, где он почти не встречается). Многие пользователи обнаруживают, что на их ПК в Windows 2000 спящий режим есть, а в Windows Me — нет. Это нормальное явление, дело в том, что слишком различаются эти операционные системы, по-разному они работают с оборудованием и используют разные модели драйверов. В принципе, есть шанс попробовать использовать для проблемного устройства драйвер Windows 2000 и в Windows Me (если он стандарта WDM), что может решить проблему, однако особенно надеяться на это не стоит, так как система Windows Me более новая и все включённые в неё драйвера, по идее, тоже должны поддерживать Hibernate (хотя на деле это далеко не так).
Если же вам не повезло, и Спящий режим отсутствует, несмотря на наличие ACPI-совместимого BIOS, то для начала найдите в папке Windows файл Nohiber.txt
. В нём будут перечислены драйверы или устройства, которые препятствуют использованию данного режима. Как правило, это драйверы старых типов, не соответствующие спецификации WDM. Чтобы спящий режим заработал, их необходимо заменить на драйверы, входящие в состав Windows Me или специально написанные для неё драйверы WDM. Учтите, однако, что Спящий режим может быть недоступен из-за того, что сразу несколько устройств не удовлетворяют необходимым требованиям, однако в документе Nohiber.txt всегда отображается только одна (первая найденная) причина. Таким образом, необходимо устранять неисправности поочерёдно, например, удаляя из корпуса ПК одно устройство за другим и после каждой перезагрузки анализировать ошибки, зафиксированные в файле Nohiber.txt
. Наиболее часто причиной отсутствия функции «Спящий режим» являются SCSI-адаптеры.
В той же папке может находиться файл Susfail.txt
, в котором регистрируются уже причины проблем с уходом в «спячку» или режим Suspend. Так, если Спящий режим включён, а компьютер, тем не менее, уходить в него не хочет или возникают другие сбои, то загляните в этот файл. В нём будет указано устройство, отказавшееся корректно уйти в «спячку». Ещё одной причиной отсутствия Спящего режима может оказаться нехватка места на диске, поскольку для записи содержимого оперативной памяти на винчестер необходимо место, равное размеру самого ОЗУ. При этом файл, в который сбрасывается образ оперативной памяти, в Windows Me называется VMMHIBER.W9X
и находится в папке Windows. В Windows 2000 файл расположен уже в корне системного диска и носит имя HIBERFIL.SYS
. Так что не пугайтесь большого размера этих непонятных файлов.
Итак, что следует конкретно делать, если, несмотря на все усилия, спящий режим работать категорически отказывается либо работает нестабильно? Вообще говоря, возможны несколько вариаций подобной проблемы:
- ваша система ACPI-совместима, но режим Hibernate вы никогда даже не видели — он отсутствует сразу же после установки ОС. Тут может быть причиной какое-то изначально установленное устройство или, например, то, что за управление питанием и контроль над железом «дерутся» BIOS и операционная система и никак не могут его поделить между собой;
- Hibernate раньше был, но потом неожиданно пропал и в свойствах управления питанием исчезла вкладка, на которой он включается. Это может происходить, например, в том случае, если система дважды потерпела неудачу при попытке перейти в Hibernate — некстати хитрая Windows тогда решает, что стабильность системы важнее спящего режима и, дабы не вводить юзера во искушение, прячет от него эту вкладку;
- ваш ПК слишком старый, и его BIOS поддерживает только APM, либо Windows не хочет признавать, что BIOS ACPI-совместимый.
Во всех трёх случаях вернуть Hibernate, в принципе, возможно.
Не было и нет…
Если вам не посчастливилось обнаружить вкладку «Спящий режим» сразу после установки ОС, то первым делом необходимо проверить настройки CMOS Setup. В меню «Power Management» необходимо установить:
- ACPI Function: Enabled (Только если вы уверены, что ваша машина на 100% совместима с ACPI (включая все приложения и аппаратные средства), иначе это должно быть установлено на «Disabled»)
- Power Management: Disable (только если BIOS имеет опцию PM Control By APM)
- PM Control by APM: No (тут иногда успешной оказывается и установка «Yes»)
- Video Off Method: DPMS
- Video Off After: N/A
- MODEM Use IRQ: N/A (либо установите требуемое прерывание)
- Doze Mode: Disabled
- Standby Mode: Disabled
- Suspend Mode: Disabled
- HDD Power Down: Disabled
- Throttle Duty Cycle : N/A
- Reload Global Timer Events : Disabled
- В разделе PNP,PCI & Onboard I/O Setup установите: PNP OS Installed: Yes (хотя иногда помогает «No»)
- В разделе «Wake Up Events»: VGA: On, PCI Master: On
В «IRQ Activity Monitoring» для Wake Up Events нужно разрешить использовать для пробуждения прерывания AGP-видеокарты (или PCI) и PS/2-мыши (IRQ12). Остальные прерывания отключить.
Затем удалите из корпуса ПК все платы расширения кроме видеокарты и отключите все периферийные устройства — если причиной несчастий было какое-то устройство, то это поможет его выявить, когда впоследствии вы будете подключать все платы по-очереди. Так, например, даже громкоговорители Altec Lansing Multimedia USB Speakers — ACS-495 напрочь отключают Спящий режим. Учтите также, что на большинстве материнских плат AGP-видеокарта совместно использует одно и то же прерывание, что и расположенный рядом PCI-слот, поэтому при установке плат расширения оставьте соседний с видеокартой слот пустым. Вообще говоря, совместное использование прерываний несколькими устройствами (IRQ sharing) — хоть и совершенно нормальное явление, но на деле — большая головная боль, часто блокирующая Спящий режим. Если именно IRQ sharing мешает вашей системе, то в файле NOHIBER.TXT
будет запись BAD IRQ HOLDER
. Избавиться от этого почти нереально, хотя попытаться можно. Для этого в Панели управления откройте диалог «Система» и на вкладке «Устройства» («Device Manager») выберите «Системные устройства» («System Devices»). Откройте свойства шины PCI («PCI Bus») и на вкладке «Управление IRQ» («IRQ Steering») снимите флажок «Использовать управление IRQ» («Use IRQ Steering»), после чего перезагрузите ПК. Попробуйте также поэкспериментировать с распределением прерываний через CMOS Setup.
Далее, установите все сервис-паки и заплатки для операционной системы. Так, Windows 98 (не SE) без пакета обновлений неправильно работает даже с режимом Suspend, а SP2 для Windows 2000 устраняет просто море проблем, препятствующих работе Hibernate. Разумеется, в Windows 98SE надо в обязательном порядке установить известный патч «Windows Shutdown Supplement», а также установить для всех систем Windows 9x заплатку «IDE Hard Drive Cache Package», решающую проблемы слишком быстрого снятия питания с жёсткого диска. Найдёте всё это на странице corporate.
Часто причиной неработоспособности Hibernate оказывается и материнская плата, вернее, её BIOS, причём пользователи нередко жалуются на платы с чипсетами VIA. В этом случае есть шанс, что все проблемы разрешатся с прошивкой свежей версии BIOS или установкой всех драйверов от производителя чипсета, хотя, например Asus P2B, согласно некоторым данным, ни при каких условиях не поддерживает Hibernation.
Ах, куда ты удалилась?..
Как я уже говорил, при двукратной неудаче с переходом в спячку, ОС автоматически убирает вкладку «Спящий режим» диалога управления электропитанием. К сожалению, мне не удалось выяснить, какой параметр реестра отвечает за её отображение, поэтому если вы вовремя это заметили, то, вероятно, лучшим способом её вернуть будет полное восстановление реестра из резервной копии, сделанной в то время, когда эта вкладка ещё была. После этого необходимо разобраться в причинах такого поведения ОС. А причин пользователями компьютеров выявлено уже множество. Тут опять помогут прояснить ситуацию файлы Nohiber.txt
и Susfail.txt
. В них будет отражена наиболее вероятная причина проблем — обычно ей оказывается новый драйвер какого-то устройства, несовместимый с Hibernate. Поэтому крайне желательно заботиться о сохранности режима Hibernate с помощью деинсталляторов, позволяющих максимально точно вычищать систему в случае неудачной установки нового драйвера. То есть, если после обновления драйвера Hibernate пропал, то делайте полный откат настроек системы к состоянию, предшествующему установке драйвера. При этом необходим откат не только настроек реестра, но и возврат предыдущих версий файлов драйвера.
В столь неблаговидном поведении на сегодня уже замечены Iomega Ditto Tools, драйвера Creative Labs Sound Blaster, драйвера контроллера жёстких дисков от Highpoint, видеокарты GeForce, модема Creative Modem Blaster USB DE5670, драйвера мышей Genius и Logitech — ищите их самые последние версии от производителя оборудования, совместимые с Hibernate и соответствующие стандарту WDM, либо экспериментируйте с драйверами из состава Windows. Похожая ситуация случается с драйверами от Adaptec, устанавливаемыми вместе с Windows Media Player 7. Если после его инсталляции вы распрощаетесь со Спящим режимом, то достаточно удалить не весь проигрыватель, а лишь переустановить его без поддержки записи дисков CD-R. Правда, иногда происходит обратное, и более старый драйвер устройства или прошивка BIOS работает с Hibernate, а новый — отказывается. Подобная неприятность происходит, например, с драйвером Intel Ultra ATA Storage Driver — некоторые его свежие версии «отрубают» спящий режим. Драйвера видеокарты рекомендуется использовать от их производителя, поскольку то, что имеется в составе Windows (например, драйвер стандартного VGA-адаптера), зачастую вызывает проблемы. Проверьте также вкладку Device Manager (Устройства) в свойствах системы — проблемные и отключённые устройства могут деактивировать Hibernate. Обратите также внимание на то, какое прерывание использует ACPI — часто ему почему-то нравится IRQ 5, предназначенное изначально для звуковой карты. Поэтому владельцам Sound Blaster Live!, возможно, придётся отключить Creative SB16 Emulation; владельцам Sound Blaster AWE32 — отключить COM-порт, а при наличии Sound Blaster PCI64 — отключить Legacy Device for DOS, дабы избежать конфликта распределения ресурсов.
Аналогичные проблемы могут быть и при установке программ, использующих свои собственные драйверы виртуальных устройств. Тут должна бы спасать обычная деинсталляция приложения, поскольку Microsoft обещает, что после устранения причины неполадок режим Hibernate автоматически возвращается, однако лучше подстраховаться деинсталлятором, делающим более полный откат, нежели стандартный диалог «Установка-удаление программ». В качестве деинсталлятора подойдёт и встроенный в WindowsMe System Restore и более надёжный от стороннего производителя, например, мой любимый Ashampoo Uninstaller [7]. Если же вы пренебрегли деинсталлятором, то попробуйте хотя бы восстановить реестр из резервной копии и вернуть предыдущие версии системных файлов из дистрибутива Windows, воспользовавшись утилитой SFC.EXE
— Проверка системных файлов, правда, она изначально присутствует только в Windows 98 и в «Миллениуме» не спасёт, если только вы предварительно не скопировали её туда из Windows 98.
Среди программ отмечены проблемы с Norton AntiVirus, Norton System Works, McAfee AntiVirus, с некоторыми файерволлами. Вообще, многие старые версии антивирусов несовместимы со Спящим режимом. Некоторые трёхмерные скринсейверы не дают системе нормально заснуть — откажитесь от них. Internet Connection Sharing из состава Windows Me категорически не рекомендуется — то, что он преднамеренно отключает «гибернацию», честно признаёт сама Microsoft. В Windows 2000 аналогично ведёт себя служба Terminal Services, деактивирующая и «гибернацию» и Ждущий режим. Сбои Спящего режима иногда вызывают и работающие в момент выключения ПК фоновые программы, поэтому есть смысл сократить число фоновых задач до необходимого минимума с помощью утилиты MSCONFIG.EXE
, а также закрывать ненужные приложения при погружении ПК в спячку.
Попробуйте очистить диск от временных файлов, забываемых обычно в папке C:\WINDOWS\
или C:\TEMP
— на переполненном мусором диске в один прекрасный момент не окажется места под файл-образ ОЗУ. Особенно опасны в этом плане утилиты типа Norton Protected Bin — при их использовании образуется как бы скрытая битком набитая корзина, а система при этом неадекватно отображает свободное место на диске, вводя пользователя в заблуждение. Откажитесь от сетевых дисков, отключите автозапуск (autorun) для всех дисков.
Само железо также может быть причиной отказа ПК заснуть, например, подключённые к ECP-порту многофункциональные агрегаты типа принтер+DisHiber
с некоторым двоичным значением. Попытайтесь найти в реестре все такие параметры и изменить их на "DisHiber"=
. Хотя, получится ли из этого что–то путное — не уверен. «Гибернейту» иногда не нравятся мультимониторные конфигурации — откажитесь от них. Добавление большего количества (192 мегабайта и более) оперативной памяти, бывает, вызывает проблемы — тут может помочь только соответствующая заплатка с сайта Windows Update. Да и чрезмерный разгон процессоров и их перегрев негативно сказываются на работоспособности ACPI в целом. Откажитесь от разгона и сбросьте установки CMOS Setup. Если система не смогла проснуться после перехода в спячку, то попробуйте отключить параметр «Fast R-W Turn Around» в CMOS Setup.
Если же пропала возможность войти даже в Ждущий режим, то запустите MSCONFIG.EXE
и на странице «General» → «Advanced» («Общие» → «Дополнительно») установите флажок «Enable Deep
Старый
Последний вариант — Windows не видит совместимости вашего ПК с ACPI и, следовательно, не хочет включать Спящий режим. При таком раскладе стоит рискнуть и установить ACPI вручную (резервную копию реестра сделать не забыли?). Для этого существует два метода. Первый наиболее надёжен: переустановить Windows с параметром программы установки системы /P J
, то есть, введя в командной строке SETUP /P J
. В этом случае Windows не будет обращать внимания на дату BIOS и включит поддержку ACPI принудительно. Если же этот номер не пройдёт, и поддержки ACPI вы всё равно не получите, значит, это невозможно в принципе — обновите BIOS, смените саму материнскую плату, либо ограничьтесь APM. Крайне желательно переустановку ОС производить «по-голому» — «глюков» будет меньше, и шансы получить Hibernate повысятся.
Второй способ приводит к успеху реже, но не требует переустановки ОС. В разделе реестра
HKEY_
создайте новый строковый параметр с именем ACPIOption
и значением 1
. Это также заставит Windows не реагировать на версию BIOS компьютера и установить поддержку ACPI, если только она реально имеется. Далее в Панели управления запускайте апплет «Установка оборудования» («Add New Hardware») и разрешите Windows произвести поиск новых устройств. Если по завершении этой процедуры ОС найдёт ACPI BIOS и предложит удалить PnP BIOS, то вы добились желаемого. Скопируйте дистрибутив Windows на жёсткий диск («Миллениум» уже хранит все свои установочные файлы на диске), так как после перезагрузки CD-ROM будет временно недоступен, и дайте ОС переустановить драйвера оборудования. Если после этого в списке устройств окажутся дубли и индикаторы конфликтов, то просто удалите то устройство из конфликтной пары, которое не имеет значка восклицательного знака.
Если же все эти трюки не помогут, несмотря на то, что вы скрестите все 20 пальцев между собой и будете параллельно призывать на помощь духов усопших товарищей по неравной борьбе с Windows, то не отчаивайтесь: глючных и неработающих стандартов на ваш век ещё хватит, и многие весёлые деньки, проведённые в настройке очередного Plug-and-Pray, вам гарантированы.