DVDドライブのDMAモードを強制的に設定する
WindowsXPでCD-ROM/DVD-ROMの転送設定がいつの間にかPIOモードに設定されていまい、DMAモードに設定できなくなることがあります。これはWindowsXPのフェイル・セーフ機能が働くためで、以下のように動作するそうです。
インストール時に最速のUltraDMAモードに設定される
転送時にタイムアウトが6回発生した
PIOモードに設定される
インストール時に最速のUltraDMAモードに設定される
CRCエラーが6回発生した
Ultra DMAの転送モードを1段下げる
CRCエラーが6回発生した
最終的にはPIOモードに設定される
上記の動きはイベント ビューアのシステム イベント ログに記録されますので、ログが残っていれば確認できます。
通常タイムアウトやCRCエラーがハードディスクで発生することはありません。もし発生するような場合は根本的、致命的な障害を持っていることになります。
ですが、CD-ROMやDVD-ROMなどは壊れかけたディスクや焼き具合が甘かった(^^;)ディスクを入れて読み込みを行っているとタイムアウトなどが頻発し、気が付くとPIOモードに設定されていたと言うことがある見たいです(原因がこれかわかりませんが)。DVDがなめらかに再生できなくなったときは、この辺を調べてみると解決に繋がることが多いです。
一度転送モードがPIOになってしまうと普通の手順を踏めば、デバイスを一旦削除してデバイスのインストールを行う必要があるので結構大変です。その為、危険を覚悟でレジストリから強制的にDMAモードを復活させます。(^^;)
設定変更の手順
  1. システムレジストリエディタを起動します。
  2. 以下のキーを開きます。
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}
  3. 変更したいチャネルを選びます。
    0001 : プライマリ IDE チャネル
    0002 : セカンダリ IDE チャネル (DriverDescで確認できます)
  4. 変更したいデバイスのタイミングモードを変更します。設定値は以下の通りです。
    変更したいデバイス対象となる項目設定値
    マスター デバイス MasterDeviceTimingMode 0x410 (MultiwordDMAモード2)
    0x2010 (UltraDMAモード2)
    0x8010 (UltraDMAモード4)
    0x10010 (UltraDMAモード5)
    スレーブ デバイス SlaveDeviceTimingMode 0x410 (MultiwordDMAモード2)
    0x2010 (UltraDMAモード2)
    0x8010 (UltraDMAモード4)
    0x10010 (UltraDMAモード5)
  5. タイミングモードを許可するために「MasterDeviceTimingModeAllowed」「ffffffff」を設定します。
  6. レジストリエディタを終了後、リブートを行います。
    ※WindowsXPは動的にモードを変えられるはずですが、何故かリブートが必要のようでした。

注意事項
レジストリを操作するので熟知していないとかなり危険です。

参考文献
マイクロソフト サポート技術情報 - 269555