Форум: "WinAPI";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
Внизсчитать ATIP информацию с CD-R Найти похожие ветки
← →
MetalFan © (2006-09-29 12:05) [0]собственно сабж. интересует объем и manufacturer id в частности
Мастера, подскажите куда копать!
предполагаю, что можно попытаться открыть устр-во \Device\cdrom1 как файл и считать заголовок... только какой его формат?
или как-то по другому?
заранее спасибо за советы!!!!
← →
Мефисто (2006-10-01 21:37) [1]Win32_TapeDrive (WMI class)
http://msdn.microsoft.com/
Или нужно:
CDROM_TOC_ATIP_DATA_BLOCK
CDROM_TOC_ATIP_DATA
CDROM_READ_TOC_EX
то тоже по ссылке :)
Примечание к описанию:
Headers
Declared in ntddcdrm.h. Include ntddcdrm.h.
Comments
For further information and definitions of terms used in this reference page and in the reference pages of related structures, see specification T10/1363-D Revision-02A, by National Committee for Information Technology Standards (NCITS).
← →
MetalFan © (2006-10-10 13:55) [2]да-да. MSDN я почитал. а кода примерного ни у кого нет?
← →
MetalFan © (2006-10-27 12:53) [3]вот код, что ManufacturerID может считать)
у меня работает только на 1 из 2х резаков. на обычных приводах не пашет вродеprocedure TForm1.ButtonClick(Sender: TObject);
const
CDROM_READ_TOC_EX_FORMAT_ATIP= $4;
IOCTL_CDROM_READ_TOC_EX = $24054;
type
CDROM_TOC_ATIP_DATA_BLOCK =record
a1: byte ;
//UCHAR CdrwReferenceSpeed : 3;
//UCHAR Reserved3 : 1;
//UCHAR WritePower : 3;
//UCHAR True1 : 1;
a2: byte;
//UCHAR Reserved4 : 6;
//UCHAR UnrestrictedUse : 1;
//UCHAR Reserved5 : 1;
a3: byte;
//UCHAR A3Valid : 1;
// UCHAR A2Valid : 1;
//UCHAR A1Valid : 1;
//UCHAR Reserved6 : 3;
//UCHAR IsCdrw : 1;
//UCHAR True2 : 1;
Reserved7:UCHAR ;
LeadInMsf:array[0..2]of UCHAR;
Reserved8:UCHAR;
LeadOutMsf:array[0..2]of UCHAR;
Reserved9:UCHAR ;
A1Values:array[0..2]of UCHAR;
Reserved10:UCHAR ;
A2Values:array[0..2]of UCHAR;
Reserved11:UCHAR ;
A3Values :array[0..2]of UCHAR;
Reserved12:UCHAR;
end;
CDROM_READ_TOC_EX = record
par1: byte;
//Format : UCHAR:4 ;
// Reserved1 : UCHAR:3;
// Msf : UCHAR:1 ;
SessionTrack:UCHAR;
Reserved2:UCHAR ;
Reserved3:UCHAR;
end;
CDROM_TOC_ATIP_DATA =record
Length:array [0..1] of UCHAR;
Reserved1:UCHAR;
Reserved2:UCHAR;
Descriptors: array [0..0] of CDROM_TOC_ATIP_DATA_BLOCK;
end;
var
a:string;
hCDDevice : THandle;
DriveLetter : char;
d:Bool;
in_data: CDROM_READ_TOC_EX;
out_size:DWORD ;
out_data: CDROM_TOC_ATIP_DATA ;
begin
FillChar( in_data,SizeOf(in_data),0);
FillChar( out_data,SizeOf(out_data),0);
// in_data.par1:=$84;
in_data.par1:=CDROM_READ_TOC_EX_FORMAT_ATIP or ($1 shl 8);
//in_data.Format := CDROM_READ_TOC_EX_FORMAT_ATIP;
//in_data.Reserved1 := 0;
// in_data.Msf :=1;
in_data.SessionTrack := 0;
DriveLetter := "G";
hCDDevice := CreateFile(PChar("\\.\"+DriveLetter+":"),
GENERIC_READ,
FILE_SHARE_READ or FILE_SHARE_WRITE,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0 );
if hCDDevice <> INVALID_HANDLE_VALUE then
begin
d:=DeviceIoControl(hCDDevice,
IOCTL_CDROM_READ_TOC_EX,
@in_data,
sizeof(in_data),
@out_data,
sizeof(out_data),
out_size,
nil );
if d = True then
begin
str(out_data.Descriptors[0].LeadInMsf[0],a);
ShowMessage(a);
end
else ShowMessage(" Ошибка:"+IntToStr(GetLastError));
CloseHandle(hCDDevice);
end
else ShowMessage(" Ошибка в Create file"+IntToStr(GetLastError));
end;
end.
← →
umbra © (2006-10-27 18:59) [4]не-резаки не умеют читать ATIP
← →
MetalFan © (2006-10-27 23:20) [5]
> не-резаки не умеют читать ATIP
эт я уже в курсе ) да и резаки некоторые почемуто не читают(
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c