Alter.Org.UA  
 << Back Home RU ru   Donate Donate www/www1/www2

CD-R/RW & DMA drivers

The following compatibility problem is oftenly met when dealing to CD-R/CD-RW under NT4/w2k and IDE DMA BusMaster drivers are installed:

To set up an SCSI/ATAPI device (CD-Recorders belong to this group) special control blocks, called MODE PAGEs are used. MODE_SENSE6/MODE_SENSE10 and MODE_SELECT6/MODE_SELECT10 commands are used to read control blocks from and send to device. Versions 6 and 10 differs in data header length only (6 and 10 bytes correspondingly). As a rule, devices understand both versions.

Driver developers do one or more of the following things (I can't understand for what reason):

    1. header transformation to some predefined version independently of the command, issued by request initiator. In this case
      a) developers forgot that it is reasonable to convert device response to the format, expected by initiator
      b) headers for MODE_SENSE can be converted to one version, for MODE_SELECT - to another
      c) transformation to some strange format (a la MODE_SENSE/SELECT14), which is absolutely unusable for device and may lead even to to hangs
    2. Explicit modification of some fields in control block, which doesn't allow switching to required write mode. As a rule, other fields are kept intact. (Looks like a kind of conspiracy... ;)
    3. Incorrect handling of some device errors
      a) groundless return of SUCCESS status. Can usually be observed when using MODE_SELECT
      b) hang for about 5 minutes and return of Bus reset error when sending incorrect (not supported by device) parameters
All this lead us to inevitable bugs when working with CD-R/RW. For example:
    impossibility of writing to
      CD-R
      CD-RW in Packet Mode (used for UDF implementation)
    Auydio-CD grabbing errors
CD-Recording software usually either return error messages or simply hang the whole system.
This can be cured in the following way:
    1. Install or enable certainly workable drivers. For example, standard (generic) drivers from Windows installation (withous support for specific IDE controllers). For NT4 this is atapi.sys. It can be enabled through ControlPanel->Devices by setting Startup property of Atapi to Boot. Another way is Registry modification: Set Start value in HKLM/System/CurrentControlSet/Services/atapi key to 0.
    2. Disable/uninstall buggy IDE BusMaster (DMA) driver. Simple disabling of DMA mode with help of the driver itself doesn't solve the problem. Do not follow this step before the previous one is successfully executed. Otherwise you cen lead to to non-bootable system.
    If you unistall driver, it worth checking if atapi.sys is really enabled (See p. 1). Driver writers often forget about it.
Here is the list of known drivers, causing compatibility problems:

Driver Info


Intel(r) 82801BA Ultra ATA Controller
Version 6.1.8.0
Files:
idebd.sys, intelata.sys, iata2000.dll
Description:
When I try to grab CDDA disk with any cdripper (I've tried a lot), the CD is visible, but tracks are not readable... An error is returned or all tracks are simply skipped. The last version of CD'n'GO (with "improved" device support) comes to blue screen with IRQ..smth. error, the system hangs. Data disks are read perfectly, realtime Audio-CD playback also works...

Intel(r) 82801AA BusMaster IDE Controller
Version 5.0.21.95.0
Files:
intelide.sys (4304)
Description:
System hangs on write attempts to CD

ETEQ
?
Files:
viaide.sys
Description:
CD-R/RW recording doesn't work at all.

ETEQ
?
Files:
viadsk.sys
Description:
CD-R/RW recording doesn't work in Packet mode (UDF). CDFS can be recorded without any problem,

VIA Bus Master Ultra ATA Controller
Version 11/16/2000, 3.01.1
Files:
viadsk.sys (49644)
Description:
CD-R/RW recording doesn't work at all.

VIA Bus Master Ultra ATA Controller
Version ??/06/2003, 3.20b
Description:
When I attempt to check disk with Ahead CDSpeed it draws yellow line or red squares. All this happens in a second... Beast.
Info from Alex Y. Matiash


Please, if you have any information about buggy (or vice versa good) IDE BusMaster DMA drivers, mail to Mail to alterX@alter.org.ua (remove X)  
PS. Currently I've already developed "proper" IDE BusMaster driver for NT4/w2k. I don't know if it will work under XP and .NET
<< Back designed by Alter aka Alexander A. Telyatnikov powered by Apache+PHP under FBSD © 2002-2014