Code used to work

I’m using the NeroCOM library to implement a simple backup system for a 3-tier database application. The presentation layer is in VB, the middle-tier is C#.net. I use the following C# code to set up and start my burn process.

        DataTable dt = ds.Tables["FILE"];
        NeroFileSystemDescContainerClass fs = new NeroFileSystemDescContainerClass();
        fs.BurnOptions = NERO_BURN_OPTIONS.NERO_BURN_OPTION_CREATE_UDF_FS;
       
        NeroFolder = fs.RootDirectoryContainer;
        string strPath = CreateMetaDataFile(strDescription);
        NeroFolder.AddFile2(Path.GetFileName(strPath),
            strPath, 0, 0);

        BVALibrary.CloseAllConnections(); // Close database connections
        foreach(DataRow row in dt.Rows)
        {      
               if(File.Exists((string)row["HARDDRIVE_LOCATION"]))
               {
                    strPath = (string)row["HARDDRIVE_LOCATION"];
                    string strLDB = Path.GetDirectoryName(strPath) +
                        Path.GetFileNameWithoutExtension(strPath) + ".ldb";
                   
                    NeroFolder.AddFile2(Path.GetFileName(strPath),
                        strPath, 0, 0);
                 }
        }
        
        SaveEventLog();

        NeroSpeedsClass ns = (NeroSpeedsClass)drive.WriteSpeeds;
        
        drive.BurnFileSystemContent(fs, NERO_BURN_FLAGS.NERO_BURN_FLAG_DISABLE_EJECT | 
            NERO_BURN_FLAGS.NERO_BURN_FLAG_WRITE | NERO_BURN_FLAGS.NERO_BURN_FLAG_VERIFY, ns.Item(0), 
            NERO_MEDIA_TYPE.NERO_MEDIA_CDR); 
        dt = null;
        ds = null;

This code was working two weeks ago. Today, I almost immediately get the OnBurnDone event, with the NERO_BURN_ERROR.NERO_BURN_FAILED as the status code. My Error Log is as follows:

Windows XP 5.1
IA32
WinAspi: File ‘Wnaspi32.dll’: Ver=4.71 (0001), size=45056 bytes, created 8/14/2002 3:03:36 PM
ahead WinASPI: File ‘C:\Program Files\Ahead\Nero\Wnaspi32.dll’: Ver=2.0.1.59, size=160016 bytes, created 6/17/2003 2:25:04 PM
Nero API version: 6.0.0.23
Using interface version: 6.0.0.17
Installed in: C:\Program Files\Ahead\Nero
Application: Nero - Burning Rom\ahead
Recorder: <TOSHIBA DVD-ROM SD-R2512>Version: 1020 - HA 1 TA 1 - 6.0.0.23
Adapter driver: <atapi> HA 1
Drive buffer : 2048kB
Bus Type : via Inquiry data (1) -> ATAPI, detected: ATAPI
Connected to MMC as unknown drive with class-nr : 1
Drive is autodetected - recorder class: Std. MMC recorder

=== Scsi-Device-Map ===
DiskPeripheral : IC25N020ATMR04-0 atapi Port 0 ID 0 DMA: On
CdRomPeripheral : TOSHIBA DVD-ROM SD-R2512 atapi Port 1 ID 1 DMA: On

=== CDRom-Device-Map ===
TOSHIBA DVD-ROM SD-R2512 D: CDRom0

AutoRun : 1
Excluded drive IDs:
CmdQueuing : 1
CmdNotification: 2
WriteBufferSize: 72351744 (0) Byte
ShowDrvBufStat : 0
EraseSpeed : 0
BUFE : 0
Physical memory : 495MB (507444kB)
Free physical memory: 120MB (123848kB)
Memory in use : 75 %
Uncached PFiles: 0x0
Use Static Write Speed Table: 0
Use Inquiry : 1
Global Bus Type: default (0)
Check supported media : Disabled (0)

13.11.2003
NeroAPI
3:38:33 PM #1 Text 0 File Reader.cpp, Line 118
Reader running

3:38:33 PM #2 Text 0 File Burncd.cpp, Line 3218
Turn on Track-At-Once, using CD-R/RW media

3:38:33 PM #3 Text 0 File DlgWaitCD.cpp, Line 233
Last possible write address on media: 359844 (79:59.69)
Last address to be written: 3225 ( 0:45.00)

3:38:33 PM #4 Text 0 File DlgWaitCD.cpp, Line 238
Write in overburning mode: FALSE

3:38:33 PM #5 Text 0 File DlgWaitCD.cpp, Line 1997
Recorder: TOSHIBA DVD-ROM SD-R2512;
CDR code: 00 97 15 17; OSJ entry from: Ritek Co.
ATIP Data:
Special Info [hex] 1: C0 00 90, 2: 61 0F 11 (LI 97:15.17), 3: 4F 3B 46 (LO 79:59.70)
Additional Info [hex] 1: 00 00 00 (invalid), 2: 00 00 00 (invalid), 3: 00 00 00 (invalid)

3:38:33 PM #6 Text 0 File DlgWaitCD.cpp, Line 398
>>> Protocol of DlgWaitCD activities: <<<
=========================================

3:38:33 PM #7 Text 0 File ThreadedTransferInterface.cpp, Line 773
Setup items (after recorder preparation)
0: TRM_DATA_MODE1 (CTransferItem)
2 indices, index0 (150) not provided
original disc pos #0 + 3226 (3226) = #3226/0:43.1
relocatable, disc pos for caching/writing not required/required, no patch infos
-> TRM_DATA_MODE1, 2048, config 0, wanted index0 0 blocks, length 3224 blocks [TOSHIBA DVD-ROM SD-R2512]
--------------------------------------------------------------

3:38:33 PM #8 Text 0 File ThreadedTransferInterface.cpp, Line 942
Prepare recorder [TOSHIBA DVD-ROM SD-R2512] for write in TAO
DAO infos:
==========
MCN: “”
TOCType: 0x00; Session Closed, disc fixated
Tracks 1 to 1:
1: TRM_DATA_MODE1, 2048/0x00, FilePos 0 307200 6914048, ISRC “”
DAO layout:
===========
_Start|___Track|Idx|RecDep|CtrlAdr
-150 | lead-in | 0 | 0x00 | 0x41
-150 | 1 | 0 | 0x00 | 0x41
0 | 1 | 1 | 0x00 | 0x41
3226 | lead-out | 1 | 0x00 | 0x41

3:38:33 PM #9 Text 0 File ThreadedTransferInterface.cpp, Line 969
Removed 2 run-out blocks from end of track 1.

3:38:34 PM #10 Phase 24 File APIProgress.cpp, Line 238
Caching of files started

3:38:34 PM #11 Phase 25 File APIProgress.cpp, Line 238
Caching of files completed

3:38:34 PM #12 Phase 36 File APIProgress.cpp, Line 238
Burn process started at 4x (600 KB/s)

3:38:34 PM #13 Text 0 File ThreadedTransferInterface.cpp, Line 2146
Verifying disc position of item 0 (relocatable, disc pos, no patch infos, orig at #0): write at #0

3:38:34 PM #14 Text 0 File Mmc.cpp, Line 19359
Set BUFE: supported -> OFF

3:38:34 PM #15 TRANSFER -25 File Reader.cpp, Line 371
Error reading data

3:38:34 PM #16 Text 0 File ThreadedTransfer.cpp, Line 235
conversion failed, stopping writers

3:38:34 PM #17 CDR -201 File WriterStatus.cpp, Line 193
Invalid write state
TOSHIBA DVD-ROM SD-R2512\H1 T1

3:38:34 PM #18 TRANSFER -18 File WriterStatus.cpp, Line 193
Could not perform EndTrack

3:38:34 PM #19 Text 0 File Mmc.cpp, Line 14342
<TOSHIBA DVD-ROM SD-R2512> start Close Session

3:38:34 PM #20 SCSI -1023 File Cdrdrv.cpp, Line 1167
SCSI Exec, HA 1, TA 1, LUN 0
Status: 0x04 (0x01, SCSI_ERR)
HA-Status 0x00 (0x00, OK)
TA-Status 0x02 (0x01, SCSI_TASTATUS_CHKCOND)
Sense Key: 0x05 (KEY_ILLEGAL_REQUEST)
Sense Code: 0x2C
Sense Qual: 0x00
CDB Data: 0x5B 0x01 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Sense Data: 0x70 0x00 0x05 0x00 0x00 0x00 0x00 0x0A
0x00 0x00 0x00 0x00 0x2C 0x00

3:38:34 PM #21 CDR -1023 File WriterStatus.cpp, Line 232
Command sequence error

3:38:34 PM #22 TRANSFER -19 File WriterStatus.cpp, Line 232
Could not perform Fixation

3:38:34 PM #23 Text 0 File WriterStatus.cpp, Line 241
falling back to disc fixation

3:38:34 PM #24 Phase 38 File APIProgress.cpp, Line 238
Burn process failed at 4x (600 KB/s)

Existing drivers:
File ‘Drivers\ASPI32.SYS’: Ver=4.71 (0001), size=17005 bytes, created 8/14/2002 3:03:36 PM

Registry Keys:
HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\AllocateCDROMs : 0 (Security Option)

I’ve spent all afternoon looking at diffs of the code in source safe, and even selectively reverting sections of the code, but no joy. Any help would be greatly appreciated.