Главная страница
    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
15-1171255558
Slider007
2007-02-12 07:45
2007.03.11
С днем рождения ! 12 февраля


2-1171721201
laka
2007-02-17 17:06
2007.03.11
База данных


3-1166107397
Shaman_
2006-12-14 17:43
2007.03.11
Не могу динамически задать TClientDataSet.ProviderName


2-1171962354
Sapos
2007-02-20 12:05
2007.03.11
Создание таблиц


2-1171966110
Bob_l
2007-02-20 13:08
2007.03.11
SellTreeView





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский