Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1171716285
@gent
2007-02-17 15:44
2007.03.11
Дирректория запуска программы.


15-1171630707
DrDe
2007-02-16 15:58
2007.03.11
Реестр


15-1171606301
Loginov Dmitry
2007-02-16 09:11
2007.03.11
Ловушка для сишника MidStr()


15-1171382070
oldman
2007-02-13 18:54
2007.03.11
Что только не узнаешь по телеку...


15-1171262859
Карелин Артем
2007-02-12 09:47
2007.03.11
Витамины пьете? Если да то какие?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский