|
How to raw read DVD? we need help!
|
|
zhaopz
Newbie
|
8. December 2007 @ 03:18 |
Link to this message
|
When copy Cdrom, we can use the IOCTL_CDROM_RAW_READ to read the CD-ROM, but copy DVD-ROM, what is the fastest method? How to raw read DVD-ROM? we need help, please help me.
|
Advertisement
|
  |
|
AfterDawn Addict
|
8. December 2007 @ 10:21 |
Link to this message
|
not quite sure what you need? although i have heard the terminology...
Nothing here to see, move along folks.

|
olyteddy
Senior Member
|
8. December 2007 @ 12:39 |
Link to this message
|
ImgBurn is a real good DVD copying program. It can read a dvd into an ISO file and then burn that ISO to a blank. Is this what you mean?
|
AfterDawn Addict
|
9. December 2007 @ 02:04 |
Link to this message
|
lol I'm lost to need more info buddy
Antec 1200 Full-Tower Case/Thermaltake 750-Watt PS/ASUS SABERTOOTH Z77 Mobo/Western Digital Black WD500 500GB 7200 RPM 64MB Cache/NVIDIA GeForce 8800GTX 384-bit GDDR3 PCI Express Video Card/CORSAIR DOMINATOR PLATINUM 16GB DDR3 /Intel Core i7-3770K Ivy Bridge 3.5GHz (3.9GHz Turbo)/CORSAIR Hydro High Performance Liquid CPU Cooler/3-Asus DRW-24B1ST Sata Drives/Samsung 2493HM 24" LCD Monitior 1920x1200 resolution,5ms respone time/OS Windows 10 Pro SP1 64-bit
|
AfterDawn Addict
|
9. December 2007 @ 04:33 |
Link to this message
|
lol - me too...
Nothing here to see, move along folks.

|
zhaopz
Newbie
|
9. December 2007 @ 10:01 |
Link to this message
|
I am C programer, in our program i have used the IOCTL_CDROM_RAW_READ to raw read the CD, now i want to raw read DVD, but i donot know what to do in our program. How to raw read DVD? Tks, i need help.
|
AfterDawn Addict
|
9. December 2007 @ 13:59 |
Link to this message
|
a store bought dvd? or a dvd with the protection removed? and what are you wanted to do with the dvd? back it up? or just read it to your HD? etc.
you can use dvd decrypter to read it to your HD if the protection is removed
http://webpages.charter.net/bacitup/
Antec 1200 Full-Tower Case/Thermaltake 750-Watt PS/ASUS SABERTOOTH Z77 Mobo/Western Digital Black WD500 500GB 7200 RPM 64MB Cache/NVIDIA GeForce 8800GTX 384-bit GDDR3 PCI Express Video Card/CORSAIR DOMINATOR PLATINUM 16GB DDR3 /Intel Core i7-3770K Ivy Bridge 3.5GHz (3.9GHz Turbo)/CORSAIR Hydro High Performance Liquid CPU Cooler/3-Asus DRW-24B1ST Sata Drives/Samsung 2493HM 24" LCD Monitior 1920x1200 resolution,5ms respone time/OS Windows 10 Pro SP1 64-bit
|
AfterDawn Addict
|
9. December 2007 @ 19:59 |
Link to this message
|
If the IOCTL is from user mode, Irp->AssociatedIrp.SystemBuffer contains a RAW_READ_INFO structure that specifies the starting disk offset, the sector count, and the track mode (XA or CDDA) for the read. Parameters.DeviceIoControl.InputBufferLength specifies the size, in bytes, of the structure, which must be >= sizeof(RAW_READ_INFO). Parameters.DeviceIoControl.OutputBufferLength specifies the size of the buffer to be read, which must be >= sizeof(SectorCount * RAW_SECTOR_SIZE).
If the IOCTL is from kernel mode, Parameters.DeviceIoControl.Type3InputBuffer contains a structure that specifies the starting disk offset, the sector count, and the track mode (XA or CDDA) for the read. Parameters.DeviceIoControl.OutputBufferLength specifies the size of the buffer, in bytes, to be read, which must be >= sizeof(SectorCount * RAW_SECTOR_SIZE).
it should be exactly the same to raw read a dvd as a cd, as long as you know wher and whereto (sectors and offset) you want to read
what happens is the driver writes the requested bytes directly (using DMA or PIO) to the buffer described by the MDL at Irp->MdlAddress.
then there are a couple of system calls..
IO..If the read is successful, the driver sets Status to STATUS_SUCCESS and Information to the number of bytes transferred. If the read is not successful, the driver sets Information to zero and Status to possibly STATUS_INVALID_PARAMETER, STATUS_INSUFFICIENT_RESOURCES, or STATUS_INVALID_DEVICE_REQUEST.
but you need to have dependencies available in an (include) ..Defined in ntddcdrm.h. Include ntddcdrm.h.
info will be in just about any modern C++ reference manual
heres the structure if you want it.. there should be exactly no difference (apart from sectors/offset between cd and dvd devices
typedef struct __RAW_READ_INFO {
LARGE_INTEGER DiskOffset;
ULONG SectorCount;
TRACK_MODE_TYPE TrackMode;
} RAW_READ_INFO, *PRAW_READ_INFO;
DiskOffset
Contains an offset into the CD-ROM disc where data will be read.
SectorCount
Contains the number of sectors to read.
TrackMode
Contains an enumerator of type TRACK_MODE_TYPE that indicates the type of the track mode.
YellowMode2
Indicates that CD-ROM mode should be used. This mode is used with read-only 120 mm Optical Data Discs (CD-ROM). XAForm2 Indicates that compact disc read-only memory extended architecture mode should be used. CDDA Indicates that digital audio information mode should be used.
Nothing here to see, move along folks.

This message has been edited since posting. Last time this message was edited on 9. December 2007 @ 20:08
|
zhaopz
Newbie
|
10. December 2007 @ 11:29 |
Link to this message
|
Thanks Rotary! You are very good, and i will try it.
|
cemen
Newbie
|
12. December 2007 @ 09:02 |
Link to this message
|
I try to use IOCTL_CDROM_RAW_READ to read DVD, but failed. My vc++ code is following. Is there some wrong? Please help me.
typedef enum _TRACK_MODE_TYPE {
YellowMode2,
XAForm2,
CDDA
} TRACK_MODE_TYPE, *PTRACK_MODE_TYPE;
typedef struct __RAW_READ_INFO {
LARGE_INTEGER DiskOffset;
ULONG SectorCount;
int TrackMode;
} RAW_READ_INFO, *PRAW_READ_INFO;
#define IOCTL_CDROM_BASE FILE_DEVICE_CD_ROM
#define IOCTL_CDROM_RAW_READ CTL_CODE(IOCTL_CDROM_BASE, 0x000F, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
BOOL RawRead(HANDLE h, int offset, int mode)
{
DWORD dwOutBytes;
RAW_READ_INFO rri;
char buf[2352];
BOOL ret;
rri.TrackMode = mode/*XAForm2*/;
rri.SectorCount = (DWORD)1;
rri.DiskOffset.QuadPart =(DWORD64)offset*2048;
ret = DeviceIoControl(h,
IOCTL_CDROM_RAW_READ,
&rri,
sizeof(rri),
buf,
(DWORD)sizeof(buf),
&dwOutBytes,
(LPOVERLAPPED)NULL);
TRACE("mode=%d, ret=%d, error=%d\n", mode, ret, GetLastError());
return ret;
}
I try all TRACK_MODE_TYPE, the output is:
mode=0, ret=0, error=1
mode=1, ret=0, error=1
mode=2, ret=0, error=1
|
cemen
Newbie
|
12. December 2007 @ 09:08 |
Link to this message
|
I can work for CD, but can not work for DVD. Please help me, thank you.
|
zhaopz
Newbie
|
13. December 2007 @ 11:21 |
Link to this message
|
Hi Rotary,
it can work for CD, but can not work for DVD, do you know why? please help! Thank you very much!
|
zhaopz
Newbie
|
15. December 2007 @ 11:20 |
Link to this message
|
I am failed again, and who can help me? i am waiting...
------------------------------------------
I try to use IOCTL_CDROM_RAW_READ to read DVD, but failed. My vc++ code is following. Is there some wrong? Please help me.
typedef enum _TRACK_MODE_TYPE {
YellowMode2,
XAForm2,
CDDA
} TRACK_MODE_TYPE, *PTRACK_MODE_TYPE;
typedef struct __RAW_READ_INFO {
LARGE_INTEGER DiskOffset;
ULONG SectorCount;
int TrackMode;
} RAW_READ_INFO, *PRAW_READ_INFO;
#define IOCTL_CDROM_BASE FILE_DEVICE_CD_ROM
#define IOCTL_CDROM_RAW_READ CTL_CODE(IOCTL_CDROM_BASE, 0x000F, METHOD_OUT_DIRECT, FILE_READ_ACCESS)
BOOL RawRead(HANDLE h, int offset, int mode)
{
DWORD dwOutBytes;
RAW_READ_INFO rri;
char buf[2352];
BOOL ret;
rri.TrackMode = mode/*XAForm2*/;
rri.SectorCount = (DWORD)1;
rri.DiskOffset.QuadPart =(DWORD64)offset*2048;
ret = DeviceIoControl(h,
IOCTL_CDROM_RAW_READ,
&rri,
sizeof(rri),
buf,
(DWORD)sizeof(buf),
&dwOutBytes,
(LPOVERLAPPED)NULL);
TRACE("mode=%d, ret=%d, error=%d\n", mode, ret, GetLastError());
return ret;
}
I try all TRACK_MODE_TYPE, the output is:
mode=0, ret=0, error=1
mode=1, ret=0, error=1
mode=2, ret=0, error=1
|
Advertisement
|
  |
|
zhaopz
Newbie
|
19. December 2007 @ 11:31 |
Link to this message
|
Who can help me? Rotary where are you?
|
|