Rock Ridge/Joliet Hybrid CD

Dear ntfsd List

I have an issue with trying to read the extended file attributes (eg the long
filenames of files stored in the directory structure) on a CD burnt in a
Solaris enviroment. I have read FAQ 27 on the filesystems section of the site.

My questions are:
Will I be able to read the extended attributes for file systems other than
Joliet eg Rock Ridge using commands from the standard windows API?
Do I need to obtain the NTFSD Kit in order to implement a filter to read Rock
Ridge CD’s on XP?
Is there an off the peg solution available?

I am new to WIN32 enviroment but have been programming in C for 16 yrs writing
computation, image processing and visualisation applications.

Thanks for you help

Dr Trevor K Carpenter.
Below is a brief explanantion in more detail.
We have large quantities of medical imaging data that is used for research.
Traditionally the most common OS in the medical/accedemic enviroment has been
Solaris/other flavours of UNIX. Due to cost of the hardware and also students
not being familiar with UNIX and command lines I want to move to writing
applications for XP with its familiar look and feel.

In the Solaris enviroment it is allowed for a C program to associate a pointer
to a FILE struct with a directory (eg a path terminating in a folder rather
than a filename) using fopen(). In Solaris reading the entry on the CD
representing information about the directory as a file one byte at to make it
byte order independent. Once the filesysytem extended attributes type
RockRidge/Joliet/Hybrid/UDF has been determined it is easy to fill a struct
with the correct members and read the extended attributes to rename 8.3 files
to there orginal long names (dicom standard names).

I am now trying to read multi format CD’s in a XP,windows enviroment.
I have attempted to read the CD using fopen() but windows will not allow me to
attach a pointer to the directory.
I can attach a pointer to the directory using CreateFile(), but when I use
FileRead to try reading it windows says that I am causing a violation and stops
the console app.
I have also tried using CreateFileMapping() etc.
GetFileSize() returns the size of the folder as 0 (zero)
I have tested the code by trying to read a normal file into a buffer and the
writing it back again into another file and it works.

Any suggestions?

Can you read such a CD with ISO utilities or Nero (not sure if it can help here)?


Kind regards, Dejan M. MVP for DDK
http://www.alfasp.com E-mail: xxxxx@alfasp.com
Alfa Transparent File Encryptor - Transparent file encryption services.
Alfa File Protector - File protection and hiding library for Win32 developers.
Alfa File Monitor - File monitoring library for Win32 developers.