Click here to Skip to main content
Click here to Skip to main content

Write a UDF CDR

, 22 Jul 2003 CPOL
Rate this:
Please Sign up or sign in to vote.
How to write a CDR in UDF

Introduction

Some electronic devices need to use CDR as storage media, and you have to append several files each time before the space is used out. In this case, UDF is a good solution, since for each writing, only 7 logic blocks of overhead are used. (Multisession CDs use several minutes for each session's leadout)

How to use the demo

(You need WNASPI32.dll to run the demo, which could be downloaded from Ahead.)
  • Select the CDR drive you want to write to.
  • Insert a blank disc, "Format" it.
  • Browse to select files, and write to the disc. (Now you can view the files using DirectCD).
  • You can list the content of the CDR, and restore files to hard disk
  • Close Session, now any CD drive can read it..

How to use the source code

//Create a variable for your drive
SCSI2 m_drive;
//m_HA:HostAdpaterNumber,m_ID:SCSI ID,m_LUN:LogicUnitNumber
m_drive.SCSISelectDevice(m_HA,m_ID,m_LUN);
//For a blank CDR, you need to format it 
m_drive.FormatDisc("VOL1");
//Then you can write files onto it
m_drive.WriteFiles("Test1.bmp");
//Append more files here...
//
//After you have writen ALL the files, close the session
m_drive.CloseSession();
//Now it's readable by regular CDROM drive.

Some useful functions

SCSIRead()      //Read data from CDR
WritePacket()      //Write packets to CDR
ReadTrackInfo()      //Read track info, like next writable address
ReadDiskInfo()      //Read disc info, like capacity
TestUnitReady()      //See if the drive is ready
LoadUnload()      //Eject/Close the tray
SetWriteParameters()    //Set write mode
SCSISetSpeed()      //Set read/write speed
ListFiles()      //List files on the CDR
SaveFileAs()      //Save file on CDR to hard disk

If you want to know more inside stuff

Things you need to have:
  • SCSI command block structure (ANSI X3.131-1994)
  • SCSI multimedia commands-2 (ANSI NCITS 333-2000)
  • OSTA specs: ECMA-167, Universal Disk Format Specification, ECMA-119
Things you need to know:
  • SCSI2 block command structure
  • Use of ASPI
  • Concepts about CDR: track, session, logical blocks, PMA, ATIP, TOC, write modes...
  • UDF(Volume structure, file system)

More info at my website.

Revision History

  • Ver 1.01
    • More comments, some code clean up
    • New function: ListFiles()
    • New function: SaveFileAs()
  • Ver 1.02
    • Some changes on the demo application

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

spotofleopard
Engineer
United States United States
Wheels I reinvented on various embedded systems
 
*License Plate Reader
*TCP/IP stack
*Web Server
*HTTP/FTP/SMTP client
*Ethernet/SCSI/USB drivers
*FAT32/UDF file system
*JPEG/MJPEG encoder

Comments and Discussions

 
GeneralNot working in Release mode PinmemberAbinash Mohanty17-Aug-09 19:23 
GeneralRe:DVD-RAM FAT32 format in xp Pinmemberrrbhuvan10-Aug-07 4:33 
Generalno load Pinmemberbose_sard24-Nov-05 19:16 
QuestionHow many copies make by the CDR PinmemberThangaDharma5-Oct-05 7:22 
GeneralClose Session Problem Pinmembergzu5323-Aug-05 4:24 
GeneralCode corrections Pinmembernico0418-Aug-04 22:18 
QuestionHow to append files to a UDF CDR Pinmemberjacmod10-Aug-04 17:46 
AnswerClose session Error: Pinmemberjacmod25-Aug-04 17:52 
GeneralError in "Write Files" Process Pinmemberjacmod5-Jul-04 22:30 
GeneralRe: Error in "Write Files" Process PinsussAnonymous15-Jul-04 20:34 
GeneralRe: Error in "Write Files" Process Pinmemberjacmod28-Jul-04 17:19 
GeneralRe: Error in "Write Files" Process PinsussAnonymous29-Jul-04 1:28 
GeneralRe: Error in "Write Files" Process Pinmemberjacmod10-Aug-04 17:29 
GeneralError in SetWriteParameters() function Pinmembersunil samineni24-Jun-04 0:37 
GeneralRe: Error in SetWriteParameters() function Pinmemberfullluck1-Jul-04 21:28 
Generalexplain note 4 in ATAPI code fix Pinsussfkking25-May-04 13:13 
GeneralRe: explain note 4 in ATAPI code fix Pinmemberfullluck27-May-04 1:20 
GeneralRe: explain note 4 in ATAPI code fix Pinmemberfkking28-May-04 10:27 
QuestionWhat's mean this error code? Pinmemberholysky10019-May-04 19:20 
AnswerRe: What's mean this error code? Pinsussfkking25-May-04 13:15 
GeneralDVD RAM Format PinsussAnonymous12-May-04 5:48 
GeneralRe: DVD RAM Format Pinmembernico0416-Aug-04 4:24 
GeneralRe: DVD RAM Format PinmemberKenThompson10-Mar-08 3:07 
GeneralCD writer is not detecting PinsussPrashant N12-Apr-04 20:39 
GeneralLast block information Pinmemberkiran_128-Apr-04 2:47 
Questionhow to write a directory Pinmembernicho9-Mar-04 22:00 
GeneralDisc manufacturer PinsussAnonymous13-Feb-04 12:39 
Generalsample code is not for ATAPI drive, suggested fixes Pinmemberfkking17-Jan-04 13:23 
GeneralWrite Error Pinmemberpigy30-Nov-03 21:22 
QuestionWhat mmc command not support ATAPI? PinsussAnonymous9-Nov-03 16:26 
GeneralFormat a CDR with DELPHI Pinmembermiximax19-Aug-03 4:14 
GeneralSector Write in CD Pinmembersamesky16-Aug-03 20:59 
Generalburning a CD-R disk using a packet-writing PinmemberRPMcoffee14-Jul-03 17:10 
GeneralRe: burning a CD-R disk using a packet-writing PinmemberHongfeng16-Jul-03 6:51 
GeneralRe: burning a CD-R disk using a packet-writing PinmemberRPMcoffee21-Jul-03 4:23 
GeneralRe: burning a CD-R disk using a packet-writing PinmemberHongfeng23-Jul-03 10:21 
GeneralRe: burning a CD-R disk using a packet-writing PinmemberRPMcoffee23-Jul-03 17:16 
Generalfound au dio cd burner source code PinsussAnonymous28-Mar-03 14:00 
Questionwhat is your OS? (null) PinsussAnonymous6-Feb-03 20:31 
GeneralCOMMAND SEQUENCE ERROR!! PinsussAnonymous6-Feb-03 15:26 
QuestionHow to read VAT ICB? PinsussAnonymous5-Feb-03 13:27 
AnswerRe: How to read VAT ICB? PinmemberHongfeng6-Feb-03 4:16 
GeneralRe: How to read VAT ICB? PinmemberchimpanzeeVN20-Oct-03 23:55 
GeneralRe: How to read VAT ICB? PinsussAnonymous21-Oct-03 16:16 
QuestionWhy Can I Record CD? Pinmemberryushark27-Jan-03 14:36 
AnswerRe: Why Can I Record CD? PinmemberChristian Graus27-Jan-03 14:48 
GeneralRe: Why Can I Record CD? PinmemberMike Nordell27-Jan-03 15:48 
GeneralDemo Project File Problem -- no rc file PinsussAnonymous27-Jan-03 4:28 
GeneralRe: Demo Project File Problem -- no rc file Pinmemberryushark27-Jan-03 14:28 
you can find the file
in root directory on zip file
copy it in to the folder
and..
you can execute the program..
 
but I'm still can not find ..
"out of memory" is.. not found in my case
GeneralATAPI PinmemberCodegg12349-Dec-02 8:19 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.141029.1 | Last Updated 23 Jul 2003
Article Copyright 2002 by spotofleopard
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid