Из PIO в DMA!

Discussion in '"Железо"' started by -Gory King-, 26 Jul 2009.

  1. -Gory King-

    -Gory King- Banned

    Joined:
    26 Jun 2009
    Messages:
    247
    Likes Received:
    23
    Reputations:
    15
    Очень часто возникает такая проблема когда dvd-привод пишет 30 мин и при етом комп (ушел в себя) тупит конкретно!! для тех у кого очень часто встречается ета трабла
    Это происходит если XP обнаруживает что устройство не стабильно работает в выбранном для него режиме. Определяется это по количеству ошибок чтения, получаемых с привода. Обычно это означает что привод находится в плохом состоянии, и про правде ему надо бы на покой. Но выбрасывать вроде бы работающий привод жалко, поэтому такие устройства можно встретить в машинах наших читателей. Хотя, благодаря механизмам контроля ошибок, многие такие приводы могут работать долго, счастливо и беспроблемно, не смотря на мнение XP о них. Единственное, что портит кровь их владельцам, это постоянные тормоза системы, из за PIO режима. У меня нет полной уверенности, как работает и чем управляется система контроля ошибок в XP, поэтому я не могу гарантировать что этот совет сработает во всех случаях. Но попробовать можно.
    Для отключения режима отслеживания ошибок можно попробовать выставить в 0 ключ ErrorControl расположенный по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Cdfs\

    Для того что бы вернуть режим UDMA, лучше всего удалить и поставить заново IDE контролёр из Device Manager. Но можно вновь обратится к реестру. Параметры контролёра определяются в реестре, по адресу

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}

    Внутри этой ветки находится 4 папки. В том числе и

    0000 – отвечает за сам контролёр.
    0001 – отвечает за Secondary IDE Chanell.
    0002 – отвечает за Primary IDE Chanell.

    Выбираем папку которая отвечает за нужный нам канал, и заходим в неё. Каждому из установленных устройств, соответствуют по два ключа, MasteDeviceTimingModeAllowed и SlaveDeviceTimingModeAllowed (или UserMasteDeviceTimingModeAllowed и UserSlaveDeviceTimingModeAllowed, если режимы выбирались вручную), определяющие в каком максимальном режиме разрешается работать Master и Slave устройства, установленные на контролёре, и MasterDeviceTimingMode и SlaveDeviceTimingMode, которые определяют в каком режиме реально работают Slave и Master устройства. Для того что бы разрешить использовать устройство в UDMA режиме, MasterDeviceTimingModeAllowed (или Slave…, зависит от того к чему диск подключен) должно иметь значение 0хffffffff. Если оно будет 0х0000001f, то устройство сможет работать только в PIO режиме. Убедившись что этот ключ стоит правильно, выставляем MasterDeviceTimingMode, определяя в каком режиме должен работать привод. Возможны следующие варианты (цифры в HEX):

    0x10010 режим UDMA Mode 5 (ATA100).
    0x8010 режим UDMA Mode 4 (ATA66).
    0x2010 режимы UDMA Mode 2 (ATA33).
    0x0410 режим Multi-Word DMA Mode 2 и PIO 4.

    Кроме этого, UDMA Mode 4 можно включить 0xffff, а UDMA Mode 5 – 0xfffff. Выставляйте нужное, и перезагружайтесь, диск должен перейти в требуемый режим. :D