Re[4]: Чтение ATIP-информации с CD-диска в Delphi/C++.
От: MegaMonster  
Дата: 30.10.04 03:47
Оценка:
Здравствуйте, Patalog, Вы писали:

P>Здравствуйте, MegaMonster, Вы писали:


P>[]


MM>>Я честно скажу, не знаю что с этим текстом делать .


P>Хм, я по твоим

P>понял, что ты уже разобрался как прочитать ATIP и проблема только с интерпретацией информации, посему решил, что инфа в MSDN по поводу CDROM_TOC_ATIP_DATA_BLOCK тебя не удовлетворила и скинул тебе описание оной из MMC.

P>А в чем сосбт. проблема то? Делаешь DeviceIoControl c IOCTL_CDROM_READ_TOC_EX и CDROM_READ_TOC_EX (Format CDROM_READ_TOC_EX_FORMAT_ATIP) и получаешь CDROM_TOC_ATIP_DATA.


Да, проблема в том что я не могу запустить пр-му с CDROM_TOC_ATIP_DATA или IOCTL_CDROM_READ_TOC_EX.
Вот что работает:

P>
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;


//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
//atexit (Cleanup);
OpenCdRom();
ReadToc();

Edit1->Text=IntToStr(toc.BytesPerSector);
}
//---------------------------------------------------------------------------

void OpenCdRom (void)
 {

hCD=CreateFile("\\\\.\\F:",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL);
 }

void ReadToc (void)
 {
 DWORD dwBytes;

//DeviceIoControl(hCD,IOCTL_CDROM_READ_TOC,NULL,0,&toc,sizeof(CDROM_TOC),&dwBytes,NULL);
DeviceIoControl(hCD,IOCTL_CDROM_GET_DRIVE_GEOMETRY,NULL,0,&toc,sizeof(CDROM_TOC),&dwBytes,NULL);
 }
P>



1) Какая стр-ра содержит ATIP? Что конкретно подставлять?
2) Как это подставит? .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.