IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Операционные системы M$ (http://www.imho.ws/forumdisplay.php?f=2)
-   -   Тормоза с чтением списка файлов CD (http://www.imho.ws/showthread.php?t=138991)

invictus 01.04.2009 15:54

Тормоза с чтением списка файлов CD
 
Есть привод Optiarc DVD RW AD-7173S на компьютере с Windows XP SP2. Заметил такую проблему: при попытке чтения списка файлов на CD в окне проводника наблюдаются заметные тормоза, т.е. чтобы "прокрутить" в окне весь список файлов требуется значительное время. Ползунок прокрутки невозможно перетащить вниз до конца сразу, в то же время, когда это всё же удается через некоторое время, ползунок затем свободно перемещается мышью без торможений по всему списку. Такое торможение заметно, если количество файлов в просматриваемом каталоге несколько сотен (например, музыка, картинки). Пробовал те же диски на ноутбуке с приводом HL-DT-ST DVDRAM GMA-4082N, проблем со скоростью чтения списка файлов не замечал.

ceadr 02.04.2009 20:44

Посмотри в каком режиме конроллер, UDMA или PIO.

invictus 07.04.2009 12:07

Посмотрел, канал контроллера, где подключен привод, в режиме PIO. Поставил "DMA, если доступно", перегрузил комп, а текущий режим передачи всё равно пишет "режим PIO".

ceadr 07.04.2009 20:03

Скачай этот скрипт, примени и перезагрузи систему.
_http://narod.ru/disk/7469942000/[censored]
Комментарий Модератора:
Cartman:
В этом разделе линки запрещены.

ceadr 08.04.2009 19:57

Ну тогда так: resetDMA.vbs
Код:

' Visual Basic Script program to reset the DMA status of all ATA drives

' Copyright c 2006 Hans-Georg Michna

' Version 2006-03-14

' Works in Windows XP, probably also in Windows 2000 and NT.
' Does no harm if Windows version is incompatible.

If MsgBox("This program will now reset the DMA status of all ATA drives with Windows drivers." _
  & vbNewline & "Windows will redetect the status after the next reboot, therefore this procedure" _
  & vbNewline & "should be harmless.", _
    vbOkCancel, "Program start message") _
  = vbOk Then

RegPath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}\"
ValueName1 = "MasterIdDataChecksum"
ValueName2 = "SlaveIdDataChecksum"
ValueName3 = "ResetErrorCountersOnSuccess"
MessageText = "The following ATA channels have been reset:"
MessageTextLen0 = Len(MessageText)
SubsequentMisses = 0
Set WshShell = WScript.CreateObject("WScript.Shell")

For i = 0 to 999
  RegSubPath = Right("000" & i, 4) & "\"

  ' Master

  Err.Clear
  On Error Resume Next
  WshShell.RegRead RegPath & RegSubPath & ValueName1
  e1 = Err.Number
  Err.Clear
  On Error Goto 0
  If e1 = 0 Then
    On Error Resume Next
    WshShell.RegDelete RegPath & RegSubPath & ValueName1
    On Error Goto 0
    MessageText = MessageText & vbNewLine & "Master"
  End If

  ' Slave

  Err.Clear
  On Error Resume Next
  WshShell.RegRead RegPath & RegSubPath & ValueName2
  e2 = Err.Number
  On Error Goto 0
  If e2 = 0 Then
    On Error Resume Next
    WshShell.RegDelete RegPath & RegSubPath & ValueName2
    On Error Goto 0
    If e1 = 0 Then
      MessageText = MessageText & " and "
    Else
      MessageText = MessageText & vbNewLine
    End If
    MessageText = MessageText & "Slave"
  End If

  If e1 = 0 Or e2 = 0 Then
    On Error Resume Next
    WshShell.RegWrite RegPath & RegSubPath & ValueName3, 1, "REG_DWORD"
    On Error Goto 0
    ChannelName = "unnamed channel " & Left(RegSubPath, 4)
    On Error Resume Next
    ChannelName = WshShell.RegRead(RegPath & RegSubPath & "DriverDesc")
    On Error Goto 0
    MessageText = MessageText & " of " & ChannelName & ";"
    SubsequentMisses = 0
  Else
    SubsequentMisses = SubsequentMisses + 1
    If SubsequentMisses >= 32 Then Exit For ' Don't search unnecessarily long.
  End If
Next ' i

If Len(MessageText) <= MessageTextLen0 Then
  MessageText = "No resettable ATA channels with Windows drivers found. Nothing changed."
Else
  MessageText = MessageText & vbNewline _
    & "Please reboot now to reset and redetect the DMA status."
End If

MsgBox MessageText, vbOkOnly, "Program finished normally"

End If ' MsgBox(...) = vbOk

' End of Visual Basic Script program

Комментарий Модератора:
Borland:
Или так http://www.imho.ws/showthread.php?t=122875 или так http://www.imho.ws/showthread.php?t=87666 или так http://www.imho.ws/showthread.php?t=99407


Часовой пояс GMT +4, время: 13:09.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.