Здравствуйте, 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) Как это подставит?

.