Драйвер обнаружил, что на устройстве harddisk0 dr0 включен буфер записи
Обновлено: 20.11.2024
Здравствуйте, мне интересно, может ли кто-нибудь помочь мне со следующей ошибкой события.
Идентификатор события – 51. Обнаружена ошибка на устройстве \Device\Harddisk0\D во время операции подкачки
Я провел полное сканирование диска и провел дефрагментацию жесткого диска. На данный момент он работает, и у меня не было серьезных сбоев или чего-то еще, но я боюсь, что это может быть признаком чего-то серьезного.
Искал в Интернете, но смог найти любые реальные решения.
Хотите меньше рекламы и больше возможностей? Нажмите здесь, чтобы стать зарегистрированным пользователем Hardware Analysis.
У меня такая же проблема, но я не понимаю, что происходит. У вас есть диск D.
У меня есть C и D, из-за этой проблемы и этого сообщения \Device\Harddisk0\D я форматировал D, но теперь это происходит снова. Мой компьютер полностью зависает. Мне нужно перезагрузить компьютер, но тогда Windows не загружается. Мне нужно запустить восстановление Windows через компакт-диск Windows, чтобы я мог выполнить chkdsk / p на C. Затем это исправляет некоторые ошибки, и затем я могу снова загрузить Windows. После проверки средства просмотра событий я снова получаю одно и то же сообщение об ошибке точно в то время, когда компьютер завис. Так что я понятия не имею, диск D или C вызывает у меня ад.
Не могли бы вы опубликовать информацию о жестком диске?
Эта ошибка обычно указывает на аппаратную проблему, т.е. ваш жесткий диск выходит из строя. Сделайте резервную копию ваших данных. и готовьтесь к худшему.
В моем случае диск C имеет размер 40,0 ГБ, отформатированный в формате ntfs
Ultra ATA/133
Технология бесшумного диска/двигатель FDB
Кэш-буфер 2 МБ
Среднее время поиска 10 мс
/>7200 об/мин
Диск D имеет размер 120 ГБ в формате ntfs.
Ultra ATA/133 Среднее время поиска 9,3 мс
2 МБ
FDB Motors
Кто-нибудь нашел определенное решение этой проблемы? У меня такая же ошибка. Он появляется в журнале событий как предупреждение несколько раз. Однако у меня не было сбоев. Моя проблема возникает на сервере IBM с двумя жесткими дисками, работающими в RAID 1.
Хорошо, я обнаружил, что \Device\Harddisk0\D относится к вашему основному жесткому диску, просто чтобы убедиться, щелкните правой кнопкой мыши на моем компьютере и выберите "Управление", там перейдите к управлению дисками и посмотрите, какой жесткий диск называется "Диск 0"
это должен быть диск. Если это ваш основной жесткий диск, вы должны немедленно сделать резервную копию всего, потому что он выйдет из строя навсегда. я пробовал все, чтобы восстановить его, но даже низкоуровневое форматирование не помогло, мне все еще нужно попробовать и посмотреть, можно ли использовать его в качестве дополнительного диска
с уважением и удачи
Я начал искать информацию по этому вопросу, чтобы помочь. Спустя 4 часа исследований я прошел полный круг и не нашел ответа. Это серьезная проблема, на которую нет ответа, от рейда до scsi, от sata до ultra ide, от ide до серверов и настольных компьютеров. все получают это из предупреждения в bsod. есть люди с новыми и старыми дисками. получить это от загрузки до нескольких часов работы, от игр до интенсивных приложений САПР. Единственный общий фактор, который я могу найти, это то, что это происходит и происходит со многими людьми. MS не поможет, так что забудьте спрашивать их, я просмотрел так много форумов, провел многочисленные поиски и просмотрел группы новостей, и все, что я нашел, это проблема за проблемой, а не одно решение. меньше «получить новый жесткий диск». Я, например, не сторонник заговоров, но в моем понимании это похоже на неизвестную раковую опухоль в компьютерном мире, и почему-то люди в "НОУ" даже не коснулись этой проблемы. Я действительно пытался найти ответ для вас. но извините, не идти. похоже, ответа нет.
Кстати. еще один мертвый провод вернулся к жизни. но заслуживает внимательного рассмотрения.
Я начинаю проникаться религией Стива по этому поводу. Специалисты по оборудованию скажут вам, что это программное обеспечение. Разработчики программного обеспечения говорят вам, что это аппаратная проблема. Я также просмотрел бесконечные технические сайты. Есть множество людей, которые сталкиваются с одной и той же проблемой. Однако между всеми сообщениями с одной и той же ошибкой нет ничего общего.
В моем конкретном случае я обнаружил, что ошибка возникает только после завершения полного зеркалирования на дополнительном диске. Как уже упоминалось, у меня есть два идентичных жестких диска ULTRA 320 IDE, работающих в конфигурации RAID 1. Я создаю образ основного диска, затем перезагружаюсь. Затем диспетчер RAID начинает зеркалировать второй диск. Я отслеживал журнал событий в течение всего 3,5-часового зеркального процесса. Ошибка не появляется до тех пор, пока зеркалирование не будет завершено. К счастью, я не знаю ни о каких сбоях. Таким же образом я сделал более 50 систем. Я не могу сказать, что все системы имеют ошибку. Но я могу сказать, что большинство это делает.
Поиск продолжается!
Привет, ребята, за последние несколько дней я имел несчастье с этой самой ошибкой. Я заметил это, потому что мой компьютер работал все хуже и хуже. XP обычно умирает медленной смертью, но теперь она умирает очень быстро.
На днях я открыл два экземпляра IE 6, компьютер завис, ни синего, ни красного экрана, просто завис, я нажал сброс, запустил chkdsk и продолжил.
Сегодня я открыл два экземпляра IE 6, произошло то же самое. Пока я ждал, восстановится он или нет, мой жесткий диск издавал какие-то странные звуки, такие как «ТИК. ЩЕЛЧОК», как он мог бы издавать в голубую луну при выполнении операции низкого уровня или неоднократно пытался отключиться. краю тарелки?. Казалось, это повторяется в цикле со светом, указывающим, что он работает какое-то время, какое-то время выключается... и так далее. Компьютер остался без ответа. Поэтому я нажал сброс и проверил системные события, нашел эту ошибку.
Замечал ли кто-нибудь из вас совпадение открытия одной или нескольких версий IE 6 при зависании компьютера? (ХР сп2). Оба раза он был заблокирован. Я открыл два экземпляра IE 6, окно загружалось хорошо и быстро, страницы оставались пустыми, и все.
О, да, медиаплеер 10 + несколько экземпляров IE 6 сегодня поставили его на колени. достаточно, чтобы мой палец потянулся к кнопке сброса. Привод все время трясся как сумасшедший и не реагировал. Что это сделало? У меня уже было три экземпляра IE 6, у меня уже был MP3, воспроизводимый на медиаплеере 10, и я прошел 3/4 10-минутной песни, все работает нормально, я открыл еще один экземпляр IE6, все еще работал нормально, запустил поиск , сработало нормально, щелкнул ссылку в результатах поиска, БАМ. он действительно загрузил страницу и восстановил это время, хотя это заняло несколько минут.
Я думаю, что SP2 сделал мою систему нестабильной, и с моим диском все в порядке, они, должно быть, вернули часть win98 обратно в XP через SP2, потому что в последнее время он работает именно так. Буду признателен за некоторые мысли по этому поводу.
До сих пор мне очень везло, и XP снова запустилась, и компьютер работает нормально. Прошлый опыт подсказывает мне, что это просто везение, возможно, в следующий раз потребуется формат. Я только надеюсь, что мой диск все еще в хорошем рабочем состоянии!
Итак, глядя в средство просмотра событий, я вижу, что получаю эту ошибку за последние 4 дня, и она появляется 9 раз.
Что еще мне показалось интересным, так это то, что я получаю ту же ошибку для своего компакт-диска. Появляется почти 100 раз.
Я также замечаю следующие ошибки:
Таким образом, IdePort0 будет местом подключения моего основного диска. Я не использую «последние» сквозные драйверы, потому что у меня нет «последней» аппаратной части, я использую оптимальные сквозные драйверы для своего набора микросхем.
Да, у меня есть диск D, более старый и медленный, который часто используется для хранения данных. У меня также есть CDROM, записывающее устройство и виртуальный привод, который я оставляю включенным благодаря программе Alcohol 120%.
Эта конфигурация выдержала испытание временем, она очень стабильна и по крайней мере за два года у нее было несколько сбоев. Так что же изменилось? Пакет обновлений 2 является новым.
Я даже не запускал chkdsk с момента последнего сбоя (это займет целую вечность, я сделаю это позже), и он работает и звучит нормально.
Итак, у кого из вас стоит SP2 для XP, и появилась ли эта проблема до или после его установки, в моем случае после. Глядя на даты этой темы, я бы сказал, что у всех вас она тоже есть, и вы начали замечать эту проблему после ее установки, я прав?
Я установил его поверх старого сломанного при установке XP с пакетом обновления 1 в то время, когда он все равно нуждался в форматировании, просто чтобы я мог попробовать его, я мог бы не сохранить его, если я думаю, что он уничтожит мой жесткий диск, черт возьми, может просто используйте Debian.
У меня есть amd 1.2 tbird с 384 МБ оперативной памяти, видеокарта radeon agp с 64 RAM и Audigy Platinum Pro, по сути, ничего особенного, но он, безусловно, может обрабатывать несколько экземпляров IE одновременно, а затем несколько.
Я использую XP, полностью оптимизированную и настроенную как для безопасности, так и для скорости, система свободна от вирусов. Недавно я сканировал ее дважды, она хорошо дефрагментирована. Я только что хорошо почистил его внутренности, так что он работает хорошо и круто, я уверен. У меня может быть вентилятор, падающий вниз, но обороты стабильны, он просто визжит секунду или две, когда я впервые включаю его, а температура такая же, как и всегда.
По сути, такой производительности нет оправдания, и я сомневаюсь в стабильности второго пакета обновлений.
Что вы думаете по этому поводу?
Ну, это было вскоре после того, как я написал это. Мой диск умер В следующий раз буду знать, я потерял все. «Click of death» постоянно учится чему-то новому.
У меня такая же ошибка на нескольких системах. Я также искал объяснение и нашел это:
Это может быть именно моя проблема, в моем случае это машина w2k. Я установил его заново
для клиента и установил с w2k cd sp1. Затем установили sp4 и соответствующие патчи безопасности.
Я распознал предупреждение/ошибку после обновления системы с помощью сек. патчи. Раньше ошибок и предупреждений не было. В моем случае это плата ASUS P4S800D с чипсетом sis 655fx. С сестрой 2.04a ide и жесткий диск Samsung P80 на 80 ГБ. Не имеет значения, включен ли кеш записи диска или нет, и не имеет значения, установлен ли драйвер sis ide или нет. Ошибка жесткого диска определенно невозможна, я проверил это с помощью samsung's hutil и с помощью советника по данным. Также полное сканирование поверхности.
(а в другой системе hdd работает без проблем)
Я полагаю, что MS распознала это в течение последних 2 или 3 недель как ошибку, и поэтому я позвоню в понедельник
, чтобы получить исправление. Они не сделали его официальным до сих пор, как и другие «специальные» исправления. Так что звонок - единственный способ получить их, но это не должно быть проблемой. Это нормальное поведение MS для такого рода исправлений.
Поэтому, когда я получу исправление и установлю его в начале следующей недели, я сообщу вам о результате.
И да, не все машины затронуты, и вы не можете найти этому прямое объяснение. Я считаю, что это снова такая странная вещь с исправлениями безопасности MS.
У меня была такая же проблема с сервером Windows 2003. Это происходит либо во время резервного копирования, либо когда Trend Micro выполняет сканирование всех клиентов в сети. На сервере работает SQL 2000 и приложение для расчета заработной платы, а также он является сервером Trend Micro, вот и все. Разработчики программного обеспечения говорят, что это аппаратное обеспечение, а аппаратное обеспечение говорит о программном обеспечении. Два программно зеркалируемых диска Seagate ST336607LW SCSI 34 ГБ NTFS. Контроллер SCSI — Adaptec 29320LP Ultra 320. Есть новая информация? Спасибо.
Ричард
Похоже, эта проблема связана с кэшированием Windows. У меня есть несколько серверов 2k, которые подключаются к новой сети. Мой журнал событий заполняется ошибками nwredir (используя клиент MS netware для подключения). Из приведенных выше описаний следует, что эти ошибки события 51 обычно появляются после операций подкачки или кэширования, что и вызывает мои сообщения nwredir.
Похоже, что Windows очищает кэшированную информацию, не обновляя индекс кэша, поэтому, когда система возвращается к просмотру, она ничего не находит там, где, по ее мнению, должно быть что-то, и генерирует это событие, отмечая, что что-то отсутствует.
Не уверен, что это можно исправить, так как это еще одна недокументированная функция Windows ;-)
снова.
Тем временем я установил хотфикс от MS, но единственное, что я увидел, это подавление события с идентификатором 34 (отключение кеша). 51 все еще остается, но реже. Странно то, что ошибки не возникали с
w2k sp1 ! Поэтому аппаратного сбоя быть не должно..
Кэш включен, диск работает быстро, без проблем. Затем я установил SP4, и
произошло 51 событие. После установки исправлений безопасности дополнительно произошло событие с идентификатором 34. MS сообщает об этом как о проблеме с некоторыми командами записи при записи на определенных устройствах и включенном кэше. Я попытаюсь клонировать ту же установку (через norton ghost) на жесткий диск wd. Затем я посмотрю, осталась ли ошибка или ошибка
ушла. Возможно в моем случае может быть проблема с чипсетом sis и samsung hdd (прошивка?).
У меня есть несколько подобных других конфигураций и машин без этой проблемы. Опять же, все тестовые программы от samsung, ontrack и т. д. не сообщили о сбое (при расширенных тестах).
Если я не получу изменений с другим жестким диском, я снова позвоню в MS, потому что с новым исправлением нет никаких изменений.
Странно то, что объяснение от MS подходит почти по всем пунктам, и они анонсировали статью в
начале ноября..
Хорошо, я надеюсь, что у меня будет больше новостей до пятницы. Сейчас я проведу дополнительные тесты.
Я только что начал получать проблемы с идентификатором события 51. Система XP home, AMD 3000+. На первичном IDE у меня есть диск WD 160GB. На вторичном IDE мастером является универсальный 4X DVD-рекордер. Ведомый диск представляет собой 16-кратный DVD-диск. Я также недавно добавил диск на 160 ГБ на шину SATA. Все это работало хорошо, пока 2 дня назад я вдруг не начал видеть, как все это зависает с интервалом в несколько секунд. Вчера все работало нормально, а сегодня опять началось. Просто чтобы быть другим, сообщение, которое я получаю в средстве просмотра событий, является \Device\Harddisk1\D. Мне непонятно, о каком устройстве здесь идет речь. Если бы я знал, это могло бы дать мне подсказку. У меня установлен пакет обновления 1, но я избегаю установки SP2. В тот день, когда все это началось, у меня были проблемы с запуском DVD-рекордера без зависания всей системы, поэтому мне приходилось часто использовать кнопку сброса. Может быть.
В дополнение к моему последнему сообщению, вчера вечером я отключил свой диск SATA в BIOS (потому что я чувствовал, что сообщение о событии 51 указывает на это), и у меня больше не было проблем. Сегодня я снова включил его и переформатировал (там не было ничего важного). Минут через 5 после начала копирования большого файла на SATA диск все замерло.Теперь диск больше не обнаруживается системой при загрузке, поэтому я почти уверен, что он сдох. Сообщение, кажется, - если вы получите событие 51, немедленно сделайте резервную копию всего!!
Привет,
У меня были проблемы с этими двумя ошибками. Есть две вещи, которые нужно сделать, выполните исправление 1 и 2, у меня больше нет проблем с этими ошибками.
.
1: (Идентификатор события – 51 – Обнаружена ошибка на устройстве \Device\Harddisk0\D во время операции подкачки)
2: (Windows сохранила реестр пользователя имя_компьютера\имя_пользователя, пока приложение или служба все еще использовали реестр во время выхода из системы. Память, используемая реестром пользователя, не была освобождена. Реестр будет выгружен, когда он больше не используется. Это часто происходит из-за того, что службы работают под учетной записью пользователя, попробуйте настроить службы для работы с учетной записью LocalService или NetworkService.)
.
это внизу страницы
.
Зайдите в BIOS и включите
1: системный BIOS с возможностью кэширования
2: Кэшируемая видеопамять
Не забудьте сохранить изменения.
.
Надеюсь, это поможет, так как у меня больше нет проблем с этими двумя ошибками.
Разве эти настройки (1 и 2) обычно не замедляют работу системы? Похоже, MS нужно выпустить достойный патч для этого.
Я также всегда получаю:
2: (Windows сохранила реестр пользователя имя_компьютера\имя_пользователя, пока приложение или служба все еще использовали реестр во время выхода из системы. Память, используемая реестром пользователя, не была освобождена. Реестр будет выгружен, когда он больше не используется. Это часто происходит из-за того, что службы работают под учетной записью пользователя, попробуйте настроить службы для работы с учетной записью LocalService или NetworkService.)
Упомянутые вами настройки также решают эту проблему?
Обнаружена ошибка на устройстве \Device\Harddisk0\D во время операции подкачки.
>В моем случае это происходит только при загрузке.
>XP-PRO. MB=GA-8IEXP Rev 2.1 BIOS=F9[последняя]..786MB. P4 2 ГГц, теперь 3,06 ГГц.
Эта неисправность/ошибка сводит меня с ума. Поскольку у меня был мой ПК 3,5 года, я никогда не видел эту проблему в Eventviewer, пока не сделал следующее:
1-Установите больший блок питания = AOPEN 300 Вт обновлен до 550 Вт.
2-Установите более мощный процессор: от 2 ГГц/400 [без HT] до 3,06 ГГц/533 [с HT].
3-Все еще SP1 на данном этапе.
4-Disk=WD 40GB & MAX 40GB=Оба подходят.
4-Проблема возникает только в том случае, если в BIOS включена технология Hypertreading. Проблема также исчезает, если я отключу IDE-2, к которому подключены мои CD-RW[Master] и DVD-ROM[Slave].
Есть одна вещь, в которой я всегда могу быть уверен: как только я удаляю IAA или драйверы процессора [WIN XP переустанавливает их при следующей перезагрузке], условие всегда отсутствует при следующей перезагрузке.
Вчера вечером я сделал следующее открытие: ознакомительный файл Intel с IAA 23, упомяните, что вы должны проверить наличие следующих файлов, чтобы убедиться, что IAA установлен правильно:
1-IdechDr.sys
2-IdeBusDr.sys
3-IprtCnst.dll
Теперь, если я удалю IAA, затем перезагружусь [файлы предварительной загрузки удалены заранее], а затем пойду и удалю драйверы набора микросхем, Windows XP-PRO фактически переустановит эти файлы, как указано выше, но без исполняемого интерфейса IAA. Таким образом, похоже, что часть IAA позаботится о XP.
Если я сейчас пойду и удалю Processor-1, то XP установит Intelppm.sys вместо Processr.sys. Кто-то упоминал, что Intelppm.sys поставляется с SP2??
Если я сейчас удалю Processor-2 [Virtual of HT], при перезагрузке XP загрузит для него и Intelppm.sys.
Вот как моя сейчас. Затем я изменил способ входа/выхода пользователей, сняв флажок Экран приветствия и быстрое переключение пользователей.
Пока что после 6-кратной перезагрузки проблема все еще исчезла, но я знаю, что она может вернуться..
В ридми IAA также упоминаются OEM-продукты и особое внимание к ним, что я пока не совсем понимаю. ?? У меня OEM-продукт..
ЧАСТЬ IAA 23 README.TXT загружен с сайта Intel вместе с IAA23.
$$$$$$$$$$$$$$$$$$$$$
Чтобы загрузить только драйвер, как указано в документе Microsoft*
, "Руководство по развертыванию Automating Программа установки Windows NT"
используйте прилагаемый файл TXTSETUP.OEM, входящий в этот
пакет, и вставьте приведенные ниже строки в файл UNATTEND.TXT
. Этот метод доступен для Microsoft* Windows*
NT* 4.0, Windows 2000 и Windows XP. (Для Windows NT 4.0 файлы TXTSETUP.OEM, INTELATA.INF и INTELATA.SYS необходимо
сначала извлечь из сжатого файла .CAB. Для
Windows 2000 и Windows XP , необходимо извлечь файлы idechndr.inf, IdeBusDr.sys,
idechndr.sys и Txtsetup.oem.
Чтобы извлечь эти файлы, запустите 'SETUP -A -P
', как описано
выше.)
Microsoft Windows NT 4.0:
// Вставьте приведенные ниже строки в файл UNATTEND.TXT
[MassStorageDrivers]
"Контроллер Intel Ultra ATA" = OEM
[OEMBootFiles]
INTELATA.INF
INTELATA.SYS
TXTSETUP.OEM
Microsoft Windows 2000 и Windows XP:
// Вставляем строки ниже в файл UNATTEND.TXT
[MassStorageDrivers]
"Контроллер Intel(R) 82801BA Ultra ATA" = OEM
"Первичный канал IDE" = OEM
"Вторичный канал IDE" = OEM
Хорошо ли отключить "кэширование записи на устройстве" в Windows 7?
Сейчас кэширование записи включено (по-видимому, по умолчанию).
Я работаю над 90-фунтовым слабаком, маленьким ноутбуком Acer (не нетбуком).
Используемое пространство: 220 ГБ
Свободное место: 226 ГБ
Конечно, я хочу все! Я хочу скорости и хочу безопасности. Недавно я заметил улучшение скорости при переключении с Firefox на Opera, но иногда ноутбук сбивается при запуске браузера + Thunderbird + MS Word + foxit (средство просмотра PDF) + блокнот ++, и тогда мне приходится закрывать вещи (но иногда ноутбук настолько запутался, он даже не знает, как закрыть вещи, и мне приходится перезапускать).
С удовольствием предоставлю дополнительную информацию, просто скажите, что еще я должен добавить, спасибо.
Примечание. Я нашел похожий вопрос, но он касается второго флажка в этом диалоговом окне. Сегодня мой вопрос касается первого флажка.
Это зависит от вашего варианта использования. Описание под каждой опцией говорит само за себя. Какую ты хочешь? Производительность или безопасность? Отключение кеша записи сильно замедлит работу вашего компьютера.
Конечно, я хочу все! К сожалению, у вас не может быть и того, и другого. То, что у меня есть шанс с Шэрон Стоун, гораздо более правдоподобно.
@MichaelBay - Я пытался быть милым. Я должен иметь минимальную безопасность, так как иногда мне приходится выполнять жесткую перезагрузку, и я действительно не хочу потерять работу в MS Word, которую я выполнял. Кроме того, если бы я мог немного улучшить скорость и зависание, было бы неплохо. Однако теперь, когда я перестал использовать firefox и chrome и перешел на Opera, дела уже идут намного, намного, намного, намного, намного лучше.
2 ответа 2
Имейте в виду, что запись на диск выполняется медленно, поэтому "кэширование записи" буферизует данные в памяти и сохраняет их на диск только по истечении времени ожидания или после заполнения буфера. Это, вероятно, дает вам повышение производительности, не отключайте его, если вы не знаете, что делаете.
Это повышает производительность, поскольку запись на жесткий диск в любом случае происходит фрагментами. Это может быть чрезмерным упрощением, но представьте, что ваш жесткий диск имеет размер блока 512 байт, и вы запускаете тупую программу, которая пытается записать 512 байт ``байт за байтом''. Этот подход займет намного больше времени, чем тот, который записывает сразу 512 байт. Таким образом, ваш SO буферизует данные для вас и выполняет единственную запись. Предостережение заключается в том, что если произойдет потеря питания до того, как запись действительно произойдет, вы потеряете свои данные. Именно об этом предупреждает этот флажок.
Вы должны открыть диспетчер задач и проверить в ресурсе монитор активности диска. Я предполагаю, что вы испытываете одну из двух вещей (или обе):
- диск загружен на 100 %, когда система зависает
- вашей системе не хватило памяти, и она выполняет подкачку, что увеличивает активность вашего диска
Подкачка происходит, когда у вас недостаточно памяти и ваша ОС использует специальный файл на диске в качестве временной памяти. Если ваша ОС должна начать перемещать блоки памяти на диск, чтобы постоянно освобождать место для других блоков (это называется свопингом), ваша система, похоже, зависает, потому что запись и чтение с диска происходит намного медленнее, чем память.
Если ваш диск почти заполнен, попробуйте выполнить дефрагментацию диска вручную. Дефрагментация диска может завершиться неудачно, если у вас недостаточно места, держать диск Windows более 90%, как правило, плохая идея. Вы должны выполнить шаги, описанные в этом замечательном ответе, чтобы освободить место на диске.
РЕДАКТИРОВАТЬ: OP указал мне в комментариях, что я неправильно прочитал сообщение. Диск заполнен наполовину, не почти заполнен. Рекомендация запускать дефрагментацию диска по-прежнему актуальна, но, вероятно, мало что даст, если только Windows не запускает ее с достаточной частотой (поскольку Windows 7 время от времени запускает ее в фоновом режиме). Тем не менее, выполнить дефрагментацию диска и получить больше места никогда не помешает ;)
После отключения параметра кэширования записи на диске на вкладке Свойства/Политики устройства Microsoft Windows Server 2000 или 2003 Disk Drive и перезагрузки системы в журнале системных событий появится следующее предупреждающее сообщение: «Драйвер обнаружил, что устройство \ Для Device\Harddisk1\DR1 включен кэш записи. Может произойти повреждение данных."
Решение проблемы
Источник
СОХРАНИТЕ НАКОНЕЧНИК: H19851
Симптом
После отключения параметра кэширования записи на диск на вкладке свойств/политик устройства Microsoft Windows Server 2000 или 2003 Disk Drive и перезагрузки системы в журнале системных событий появится следующее предупреждающее сообщение:
"Драйвер обнаружил, что устройство \Device\Harddisk1\DR1 имеет кэш записи включен. Может произойти повреждение данных." |
Затронутые конфигурации
Системой может быть любой из следующих серверов IBM:
- xSeries 206m, тип 8485, любая модель
- xSeries 206m, тип 8490, любая модель
- xSeries 306m, тип 8491, любая модель
- xSeries 306m, тип 8849, любая модель
- Система x3400, тип 7973, любая модель
- Система x3400, тип 7974, любая модель
- Система x3400, тип 7975, любая модель
- Система x3400, тип 7976, любая модель
- Система x3500, тип 7977, любая модель
- Система x3550, тип 7978, любая модель
- Система x3650, тип 7979, любая модель
- Система x3655, тип 7985, любая модель
- Система x3755, тип 8877, любая модель
- Система x3800, тип 8865, любая модель
- Система x3800, тип 8866, любая модель
- Система x3850, тип 8863, любая модель
- Система x3850, тип 8864, любая модель
- Система x3950 E, тип 8874, любая модель
- Система x3950 E, тип 8879, любая модель
- Система x3950, тип 8872, любая модель
- Система x3950, тип 8878, любая модель
- xSeries 260, тип 8865, любая модель
- xSeries 366, тип 8863, любая модель
- xSeries 460, тип 8872, любая модель
- xSeries MXE-460, тип 8874, любая модель
Система настроена с использованием одного или нескольких следующих параметров IBM:
- Контроллер ServeRAID-8i, опция 13N2227
- Контроллер ServeRAID-8k SAS, опция 25R8064
- Контроллер ServeRAID-8k-l SAS, опция 39R8729
В системе настроено хотя бы одно из следующего:
- Microsoft Windows 2000 Advanced Server, любой пакет обновлений
- Microsoft Windows 2000 Server, любой пакет обновлений
- Microsoft Windows 2003 Server, любой пакет обновлений
- Microsoft Windows 2003 Server для 32-разрядных серверов, любой пакет обновлений
- Microsoft Windows 2003 Server для 64-разрядных серверов, любой пакет обновлений
- Microsoft Windows 2003 Server, EE x64, любой пакет обновления
- Microsoft Windows 2003 Server, x64 Edition, любой пакет обновлений
Примечание. Это не означает, что сетевая операционная система будет работать при любых сочетаниях аппаратного и программного обеспечения.
Дополнительную информацию см. на странице совместимости:
Решение
Обновление драйвера ServeRAID-8x Microsoft Windows Server до последней версии устраняет эту проблему.
Ссылочный файл будет доступен в «Серверах — матрице программного обеспечения ServeRAID» по следующему URL-адресу:
Временное решение
Сообщение можно игнорировать, никаких действий со стороны службы не требуется.
Для систем с контроллером ServeRAID-8i пользователь должен выполнить действие, описанное в совете RETAIN H19671 (MIGR-5070673), чтобы убедиться, что кэш записи жесткого диска отключен контроллером.
Файл доступен по следующему URL:
Дополнительная информация
Это сообщение является непреднамеренным и не отражает истинное состояние кэша записи жесткого диска.
Пользователи должны знать, что контроллеры ServeRAID-8x по умолчанию отключают кеш записи жесткого диска, несмотря на состояние, сообщаемое в журналах событий Microsoft Windows. По этой причине данные не сохраняются в кэше записи жесткого диска, поэтому нет риска их потери в случае отключения питания дисков.
Совет, указанный в обходном пути, описывает непреднамеренное исключение контроллера ServeRAID-8i из политики кэширования по умолчанию и предоставляет рекомендуемые действия для отключения кэша записи.
Этот совет относится только к драйверам контроллеров серии ServeRAID-8x. В предыдущих поколениях ServeRAID по-прежнему используются старые драйверы, в которых не было этой проблемы.
Да, я делаю это по-другому. Попробуйте использовать дескриптор устройства, заблокировав его, а затем SetFilePointerEx + WriteFile (для чтения и записи любого сектора, который вы хотите) - это намного проще.
Я создал для этого класс. Если кому-то это нужно, пишите мне на
[Edit: Email censored*]
* Правильный способ поделиться кодом — написать статью на CodeProject или опубликовать ее на GitHub, CodePlex и др.
Привет!
Не могли бы вы опубликовать код класса и на CodeProject.
<маленький>
36. Когда вы окружаете армию, оставьте выход свободным.
.
Не давите на отчаявшегося врага слишком сильно.
SUN-TZU - Искусство войны
Я хочу понять проблему с другой стороны. Прямой доступ к необработанному диску, пожалуй, самая мощная вещь, которую может сделать приложение и, конечно же, вредоносное ПО. Можем ли мы в любом случае остановить/обнаружить, когда приложение обращается к необработанному диску - я думаю, это троянская вредоносная программа. Как и большинство людей, я всегда являюсь администратором/королем/владельцем своего компьютера, поэтому требование прав локального администратора для запуска кода почти не защищает вообще.
Надеюсь, этот пример прояснит мои намерения.
Мне нужно наложить фильтр файлов для disk.sys, чтобы, когда драйвер класса Disk создавал объекты устройств, представляющие необработанные диски (любые).
\Device\Harddisk0\DR(0) --> Представляет необработанный жесткий диск 0
ищет в необработанной MBR диска дорожку 0, сторону 0, сектор 1, смещение 0x01BC (опционально 0x01BC-0x01BD) и читает значение там и/или записывает значение в то же место.
disk.sys — это класс диска, поэтому filter будет драйвером фильтра класса диска. файловый фильтр — это фильтры над файловыми системами.
Я написал эту вещь для особых случаев, когда какое-то вредоносное ПО сидит и охраняет определенные сектора/кластеры на томе.
Если вы хотите выполнить какие-либо операции с MBR или загрузочным сектором, проще всего будет создать файл CreateFile на "\\.\\PhysicalDriveX", где X – номер диска (а не номер диска/раздела).
Затем прочитайте (ReadFile) первый сектор (который будет MBR) в буфере, измените байты, которые вас интересуют, и выполните WriteFile по смещению 0.
Я не уверен, будет ли этот подход работать на Vista и более поздних 64-битных версиях (я думаю, что он должен работать, поскольку вы только изменяете MBR или загрузочный сектор раздела)
Надеюсь, это поможет.
Вы были очень любезны в свое время, помогая мне в автономном режиме с работой драйвера дискового фильтра, и я очень благодарен вам. В конечном итоге я последовал вашему совету и сделал модифицированную версию diskperf. Кроме того, zwCreateFile, zwReadFile и zwWriteFile могут идеально работать для моих целей со статическими целями, которые жестко запрограммированы.
Однако у меня остались два вопроса, с которыми, надеюсь, вы поможете:
1) Теперь, когда я успешно являюсь фильтром диска, вложенным выше \Driver\partmg, как мне получить имя устройства, на котором я фильтрую, т.е. \Device\Harddisk0\DR0 и только это устройство? В вашем коде вы использовали ObQueryNameString() -*- BTW теперь поддерживается включением Ntifs.h, поэтому вам не нужно __declspec(dllimport) его -*- для получения имени объекта, но вы начали в корне \Driver\Disk с помощью ObReferenceObjectByName(), а затем просматривая список объектов, чтобы перечислить их все. Я просто хочу получить объект, по которому я фильтрую, но я не совсем понимаю, как это сделать.? Помощь?
Правка: в структуре diskperf device_extension есть PDEVICE_OBJECT с именем PhysicalDeviceObject, который заполняется во время AddDevice. Если я передам это в ObQueryNameString(), даст ли это мне строку имени, которую я смогу использовать с zwCreateFile/zwOpenFile?
2) Это больше познавательно: почему дисковые объекты не создаются последовательно disk.sys? Например, при воспроизведении с различными USB-накопителями disk0 всегда \DR0 (очевидно), но почему любое из USB-накопителей появляется со случайными значениями, такими как \DR14 (который был прочитан вашим приложением как /disk 4), но есть нет ли других дисков, кроме этих двух?
1) Посмотрите пример diskperf — см. функцию DiskPerfRegisterDevice, которая вызывается из обработчика IRP_MN_START_DEVICE. Эта функция отправляет IOCTL IOCTL_STORAGE_GET_DEVICE_NUMBER для получения номера устройства (номер устройства и номер раздела).
Это число используется для построения имени, как показано ниже. Вы также можете сделать то же самое, чтобы создать имя.
RtlStringCbPrintfW(
deviceExtension->PhysicalDeviceNameBuffer,
sizeof(deviceExtension->PhysicalDeviceNameBuffer),
L"\\Device\\Harddisk%d\\Partition%d",
>номер.НомерУстройства, номер.НомерРаздела)
2) Это зависит от disk.sys, какой номер он должен назначать устройствам хранения. Я думаю, что он увеличивается каждый раз, когда вставляется диск. Если один и тот же диск вставляется, извлекается, а затем вставляется снова, ему может быть присвоено возрастающее значение (хотя дисков два). Это прекрасно работает с disk.sys.
Можно назвать это ошибкой в моем драйвере. У него должен быть механизм для правильного сопоставления этих вещей. Мне нужно улучшить его, но сейчас у меня нет времени.
Я предполагаю, что '.' в вашем первом примере createfile является индикатором по умолчанию и, следовательно, будет синонимом «Устройства». Это правильно?
2) Хм. это интересная мысль, что он постоянно увеличивается. Мне придется поэкспериментировать с этим, чтобы убедиться, что это правда. Я понимаю, что у меня не хватает времени, чтобы закончить дела. Еще раз спасибо.
О, и эта "ошибка", если вы хотите ее так назвать, является причиной ошибки 1167, о которой в прошлом году писал другой пользователь. То есть, если вы попытаетесь сказать «HarddiskX», а не значение «DRX», вы получите 1167, потому что такого устройства, как вы его перечислили, не существует, а «DRX» существует. На тот случай, если другие будут спрашивать об этой ошибке.
Хорошо, я делаю что-то не так, но не знаю что. Я написал эту быструю и простую процедуру ввода драйвера драйвера «hello world», чтобы продемонстрировать мою дилемму.
Используя методы, которые вы предложили ранее, я определяю первое дисковое устройство, а затем пытаюсь открыть его с помощью ZwOpenFile (я полагал, что ZwCreateFile создаст его, если оно не существует, а не то, чего мы хотим, поэтому я хочу только чтобы открыть существующее устройство.) Здесь драйвер терпит неудачу. статус операции ZwOpenFile — «-1073741788», а статус file_status->status — «-2141904312», поэтому очевидно, что операция не сработала. Но я не понимаю, почему, и что более важно, как это исправить! Точно так же он никогда не доходит до операции ZwReadFile, так что я могу, по крайней мере, в WinDbg просмотреть MBR в массиве, чтобы убедиться, что он правильно прочитан, особенно быстро просмотрев «55 AA» в конце.
Теперь я решил проверить, было ли причиной сбоя только "\\Device\Harddisk0", поэтому я изменил драйвер, чтобы он смотрел на "\\Device\Harddisk0\DR0", и устройство было успешно открыто. .
Однако теперь ZwReadFile дает сбой со статусом "-1073741811", поэтому, даже если вы можете открыть диск таким образом, вы все равно не сможете его прочитать. Если я все еще делаю что-то не так.
Я почти уверен, что делаю что-то не так с параметром. ржу не могу. Я уверен, что это как-то связано с тем, как я пытаюсь его открыть, но у меня заканчиваются идеи.
>Находится ли фильтр вашего драйвера в стеке диска?
Не в этом первоначальном сценарии. Приведенный выше код представляет собой весь драйвер hello world, с которым я экспериментирую. Как только он заработает правильно, я реализую его в печально известном драйвере фильтра на основе diskperf, который будет выполняться в стеке диска.
>На какой системе вы все это пытаетесь?
Виртуальная машина XP SP3
>Почему вы не использовали механизм IoCallDriver?
Потому что вы предложили вместо этого использовать этот метод. Кроме того, чтобы отправить IRP драйверу(ам) ниже меня (аналогично тому, как вы отправили его в свой сектор.sys), мне потребуется указатель на устройство, которым я хочу манипулировать, и на данный момент у меня есть только имя.
Испробовал различные имена для идентификации необработанного диска, но пока ни одно из них не сработало:
L"\\DosDevices\\PhysicalDrive%d"
L"\\??\\PhysicalDrive%d"
L"\\\\.\\PhysicalDrive%d"
L"\\\\.\\PhysicalDrive%d"
>L"\\Устройство\\Жесткий диск%d"
Конечно, эти проблемы с именами действительно могут быть проблемой ZwCreateFile, так как я также пробовал различные версии этого файла.
Прогресс. но не полностью.
Из драйвера hello world я смог читать и записывать на необработанный диск через:
К сожалению, мне кажется, что я делаю это в процедуре завершения IRP_MN_START_DEVICE (выполняется в DiskPerfIrpCompletion()). Хорошо, выполнение операции в первой операции ввода-вывода звучит разумно. очевидно, в это время будут проводиться операции. ржу не могу. Итак, давайте посмотрим. флаг ввода-вывода инициализируется нулем, а затем увеличивается, поэтому он выполняется только при первой операции, а не при каждой операции. нужно, чтобы функция достаточно легко принимала IRP_MJ_READ и IRP_MJ_WRITE.
Теперь создание IRP с помощью IoCallDriver должно быть довольно простым, только я вижу, что я просто отправляю его на следующее устройство ниже меня, как показано ниже, или как в вашем драйвере у вас был указатель на конкретный необработанный диск для читать.
ЕСЛИ последнее, я доказал, что могу получить рабочее имя для необработанного диска (L"\\DosDevices\\PhysicalDrive%d"), но как мне преобразовать его во что-то, что я могу использовать в качестве цели моего irp, чтобы гарантировать, что я получу необработанный диск (своего рода обратное действие ObQueryNameString) для представления вашего pDiskDevObj? Могу ли я использовать deviceExtension->PhysicalDeviceObject, который устанавливается во время Add_Device?
Общие Новости Предложение Вопрос Ошибка Ответ Шутка Похвала Rant Admin
Используйте Ctrl+Влево/Вправо для переключения сообщений, Ctrl+Вверх/Вниз для переключения тем, Ctrl+Shift+Влево/Вправо для переключения страниц.
Читайте также: