본문 바로가기
컴퓨터 관련 정보

[CD-ROM 문제] cd-rom(dvd) pio고정 오류 (레지스트리 DMA강제설정)

by 월반장 2010. 10. 20.


가끔 윈도우즈를 새로 설치하거나 드라이버를 새로 설치하면

시디룸이나 dvd 등이 엄청나게 느려지는 것을 느낄 수 있다.

윈도우즈 설치나 드라이버설치가 아니더라도

이런 현상이 일어 날 수 있는데 이것은 원인은

윈도우즈가 odd의 설정을 pio로 해두어 느리게 되는 것인 대부분이다.


보통의 경우 시디룸의 해당 펌웨어를 업데이트 하거나 

컨트롤러 드라이버를 업데이트하면 해결이 된다.

하지만 컨트롤러 드라이버도 없고 설치조차 불가능하다면

바이오스 나 레지스트리를 건들여야 한다.

하지만 최신의 컴퓨터는 바이오스에 이러한 설정이 없는 경우가 있기 때문에

바이오스에 강제설정하는 법을 알아보자


일단 해당 시디룸이 pio고정이 아닌 DMA를 지원하는지 여부를 파악하자

-시디룸의 제품명으로 검색해서 회사사이트나 리뷰등에서 DMA지원여부와 종류를 알 수 있다.-

아래 내용을 일단 확인하자

PIO Mode
Multi-word DMA Mode 1
Multi-word DMA Mode 2
Ultra DMA Mode 0
Ultra DMA Mode 1
Ultra DMA Mode 2
Ultra DMA Mode 3 
Ultra DMA Mode 4 
Ultra DMA Mode 5
Ultra DMA Mode 6

자신의 시디룸이 pio만 지원한다면 고칠 필요가 없다. 어쩔수 없이 사용해야 한다.


아래는 필자의 플렉스터 716a(장치0) 와  플렉스터 프리미엄(장치1) 의

DMA설정 스샷이다.

오류가 나는 경우 현재전송모드가 pio로 고정된다.

아래 스샷은 정상적인 모습

자신의 시디룸의 DMA모드가 무엇인지 확인하면 다음 단계를 설정해보자


레지스트리를 변경하기 전에

우선 장치관리자에 들어가서 (위의 스샷) 전송모드를 바꿔보자

시작- 제어판-시스템-하드웨어-장치관리자 를 들어가거나
시작-실행-devmgmt.msc 입력하고 확인

장치관리자가 뜨면
IDE ATA/ATAPI 컨트롤러를 찾고 앞의 +를 클릭한다.
그러면 기본 IDE채널이나 보조 등이 뜬다.

필자의 경우 3번째 기본IDE채널이 시디룸에 해당하는데
자신의 것이 해당하는 것을 찾는다. (보통의 경우 하드디스크가 상위 IDE채널에 있으므로 기본의 아래쪽이나 보조쪽에서 찾는다.
(찾기가 힘들면 pio오류를 고치는 것이므로 pio로 설정된 것을 찾으면 된다.
 하드디스크의 경우에도 pio의 경우 심한 딜레이를 유발하므로 찾으면 고쳐주자
 물론 하드디스크의 DMA모드를 알아야 한다. 찾는 법은 같다.)

해당 IDE채널을 찾았다면 더블클릭하거나 오른쪽마우스-속성에 들어간 후

고급 설정 탭을 클릭
최신의 컴퓨터에는 굳이 따로 설정하지는 않지만 필자의 경우 해당 채널에서
Master(장치 0) 와 Slave(장치 1) 모두 시디룸이 설치되어 있다. 필자의 경우 마스터가 pio로 고정되는 오류가 있었다. 
전송모드가  PIO 전용으로 되어 있으면 DMA (사용 가능한 경우)로 변경

확인 버튼을 클릭하고 리부팅

이 경우에도 고쳐지지 않으면 아래 처럼 경국 강제로 레지스트리변경으로 가야 한다.  


-레지스트리 변경-

시작 - 실행 - regedit - 확인  

레지스트리 설정에 들어가면 아래 설정에 들어간다.

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

여기서 000x는 기본채널과 보조채널을 의미하는 것으로

필자의 경우 0007이 시디룸에 해당한다.

찾는 법은

우선 하나 하나 클릭을 해보되 MasterDeviceTimingMode나 SlaveDeviceTimingMode  가 있는 부분을 확인한다.

pio모드의 경우 MasterDeviceTimingMode 나 SlaveDeviceTimingMode 가

0x00000010 (32) 혹은 0X10(32)로 되어 있다.
(32)부분을 확인하면 된다.

아래 스샷은 DMA가 정상적으로 되어 있는 레지스트리 설정이다.
필자의 컴퓨터에는 시디룸이 두개가 달려 있는데 각각 마스터의 경우 MasterDeviceTimingMode에 (32784)로  울트라 DMA모드 4, 
SlaveDeviceTimingMode 에 8208로 울트라 DMA 모드2 로 되어 있다.

아래 스샷 참고



pio고정오류가 난 경우 MasterDeviceTimingMode 나 SlaveDeviceTimingMode 가 pio모드로 된 경우를 찾으면 된다.
 
오류가 난 부분을 찾았으면 

MasterDeviceTimingMode 가 pio인 경우


MasterDeviceTimingMode 를 더블클릭 한다음 16진수 값에 체크 후


아래 항목에서 자신의 시디룸의 DMA모드에 맞는 것을 찾아

(   ) 의 숫자를 적어준다.

210(528) Multi-word DMA Mode 1
410(1040) Multi-word DMA Mode 2
810(2064) Ultra DMA Mode 0
1010(4112) Ultra DMA Mode 1
2010(8208) Ultra DMA Mode 2
4010(16400) Ultra DMA Mode 3
8010(32784) Ultra DMA Mode 4
10010(65552) Ultra DMA Mode 5
20010(131088) Ultra DMA Mode 6
(이 모드가 틀릴 경우 PIO로 구동된다.)

그리고 아래 두 항목도 고쳐준다.
MasterDeviceTimingModeAllowed 의 경우 역시 16진수 값으로 ffffffff

UserMasterDeviceTimingModeAllowed 도 역시 16진수 값으로 ffffffff

SlaveDeviceTimingMode가 pio의 경우도 같다.

SlaveDeviceTimingMode
SlaveDeviceTimingModeAllowed
UserSlaveDeviceTimingModeAllowed

의 3 부분을 수정해준다.

수정을 끝냈다면 해당 000x 에 (필자의 경우 0007)이다. 마우스 오른쪽을 대고

새로만들기 - DWORD값 을 클릭하고

ResetErrorCountersOnSuccess 을 적고 확인

우측창에 ResetErrorCountersOnSuccess 이 나타나면 클릭하고 16진수 값으로 1을 적어준다.

우측 패널에 REG_DWORD형의 ResetErrorCountersOnSuccess를 추가한 후 값을 1로 설정한다.
시스템을 리부팅하면 완료


댓글