Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> производитель CD 
:(
    Опции темы
offline
Дата 25.11.2005, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



Кому ни будь удалось считать производителя или тип зприсываемого слоя с CD? Если да, то подскажите как это сделать.
PM MAIL   Вверх
Snowy
Дата 25.11.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



C CD это с диска или с CR-ROM драйва?
Если с драйва, то пример есть в DRKB.
Если с диска... А там есть такая информация?

Это сообщение отредактировал(а) Snowy - 25.11.2005, 17:34
PM MAIL   Вверх
offline
Дата 25.11.2005, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



Нес с драйва, а именно с CD-R диска. Да, там такая инфа лежит, вот только как до нее достучаться?
PM MAIL   Вверх
_hunter
Дата 25.11.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



судя по:
Цитата
или тип зприсываемого слоя с CD

таки болванки...
хотя про инфу о производителе я тоже не слышал...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
offline
Дата 25.11.2005, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



тогда откуда эти данные Nero CD-DVD Speed берет smile? именна с болванки
PM MAIL   Вверх
RA
Дата 25.11.2005, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Брутальный буратина
****


Профиль
Группа: Участник Клуба
Сообщений: 3497
Регистрация: 31.3.2002
Где: Лес

Репутация: 7
Всего: 115



Я может скажу глупость smile , но всёже скажу.
Может инфа объэтом записанна на нулевой дорожке.
PM   Вверх
offline
Дата 25.11.2005, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



честно говоря я не знаю, где записывается это инфа, но считать очень хочется smile
>RAdmin
а как ее от туда вычитать?

Это сообщение отредактировал(а) Girder - 25.11.2005, 23:50
PM MAIL   Вверх
offline
Дата 28.11.2005, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



есть у кого какие идеи ?
PM MAIL   Вверх
offline
Дата 6.12.2005, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



Я тут узнал, что нужная мне информация хранится в TOC, а не в нулевой дорожке, а уже из ТОС по таблицам ATIP получить производителя диска...

А вот как до ТОС можно добраться и прочитать его?
PM MAIL   Вверх
offline
Дата 6.12.2005, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7




Вот тут

http://www.replikator.ru/context.php?a_ID_...NU=10&ID_SITE=1

есть расшифровка таблиц ATIP (В таблице указаны НАЧАЛА диапазонов ! Единицы фреймов означают ТИП материала носителя.)
А вот как получить эти данные?

PM MAIL   Вверх
Snowy
Дата 6.12.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



PM MAIL   Вверх
offline
Дата 6.12.2005, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



>Snowy

смотрел я там, но так и ничего не нашел smile
PM MAIL   Вверх
Snowy
Дата 7.12.2005, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Цитата(kirilllius @ 6.12.2005, 23:52)
смотрел я там, но так и ничего не нашел

А я облазал MSDN и тоже ничего не нашел.
Вся инфа, касающаяся именно диска, а не его содержимого находится в этой структуре:
CDROM_TOC_ATIP_DATA_BLOCK
Код

typedef struct _CDROM_TOC_ATIP_DATA_BLOCK {
  UCHAR  CdrwReferenceSpeed : 3;
  UCHAR  Reserved3          : 1;
  UCHAR  WritePower         : 3;
  UCHAR  True1              : 1;
  UCHAR  Reserved4       : 6;
  UCHAR  UnrestrictedUse : 1;
  UCHAR  Reserved5       : 1;
  UCHAR  A3Valid   : 1;
  UCHAR  A2Valid   : 1;
  UCHAR  A1Valid   : 1;
  UCHAR  DiscSubType : 3;
  UCHAR  IsCdrw    : 1;
  UCHAR  True2     : 1;
  UCHAR  Reserved7;
  UCHAR  LeadInMsf[3];
  UCHAR  Reserved8;
  UCHAR  LeadOutMsf[3];
  UCHAR  Reserved9;
  UCHAR  A1Values[3];
  UCHAR  Reserved10;
  UCHAR  A2Values[3];
  UCHAR  Reserved11;
  UCHAR  A3Values[3];
  UCHAR  Reserved12;
} CDROM_TOC_ATIP_DATA_BLOCK, *PCDROM_TOC_ATIP_DATA_BLOCK;

Я не вижу, где здесь может спрятаться производитель...
PM MAIL   Вверх
Girder
Дата 7.12.2005, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй 2
***


Профиль
Группа: Участник Клуба
Сообщений: 1993
Регистрация: 12.5.2004

Репутация: 25
Всего: 155



Да дествительно... где-то там поле отведенно. Но у меня например ни разу Nero не показал инфу о производителе. С чего все взяли что производитель будет заполнять енто(тем более честно енто делать) - 1? Зачем существует описалово... как по внешнему виду определить кто дествительно является производетелем - 2? Зачем существует оборудование... которое по поверхности диска определяет уникальным штамп оборудования на котором произведен диск(ну т.е. как отпечатки пальцев) - 3?


--------------------
Как слышим, так и пишим.
Истина где-то там...
PM   Вверх
offline
Дата 7.12.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



>Snowy

а как получить эти значения, как посмотреть, что там?
UCHAR A1Values[3];
UCHAR A2Values[3];
UCHAR A3Values[3];


а как это на Delphi будет выглядеть, а то я с С++ не дружу smile
PM MAIL   Вверх
Snowy
Дата 7.12.2005, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Если этот код работает, то так:
http://forum.vingrad.ru/index.php?showtopi...ndpost&p=347230
PM MAIL   Вверх
offline
Дата 7.12.2005, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



а VB кто нибудь знает?
вот я нашел кусок кода программки

Код

On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_CDROMDrive")
For Each objItem in colItems
    Wscript.Echo "Availability: " & objItem.Availability
    For Each strCapability in objItem.Capabilities
        Wscript.Echo "Capability: "& strCapability
    Next
    Wscript.Echo "Caption: " & objItem.Caption
    Wscript.Echo "Description: " & objItem.Description
    Wscript.Echo "Device ID: " & objItem.DeviceID
    Wscript.Echo "Drive: " & objItem.Drive
    Wscript.Echo "Manufacturer: " & objItem.Manufacturer
    Wscript.Echo "Media Loaded: " & objItem.MediaLoaded
    Wscript.Echo "Media Type: " & objItem.MediaType
    Wscript.Echo "Name: " & objItem.Name
    Wscript.Echo "PNP Device ID: " & objItem.PNPDeviceID
    Wscript.Echo "SCSI Bus: " & objItem.SCSIBus
    Wscript.Echo "SCSI Logical Unit: " & objItem.SCSILogicalUnit
    Wscript.Echo "SCSI Port: " & objItem.SCSIPort
    Wscript.Echo "SCSI Target ID: " & objItem.SCSITargetId
Next


подскажите, что он делает?
PM MAIL   Вверх
Snowy
Дата 7.12.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Так это ж WMI. Ты опять же узнаешь производителя драйва, но никак не диска.
PM MAIL   Вверх
offline
Дата 8.12.2005, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



все что нужно узнал smile тема закрыта
PM MAIL   Вверх
Snowy
Дата 8.12.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 30
Всего: 484



Цитата(kirilllius @ 8.12.2005, 17:40)
все что нужно узнал  тема закрыта

Нет уж, сначала доложи, что узнал.
PM MAIL   Вверх
offline
Дата 8.12.2005, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: нет
Всего: 7



ну тогда две банки сгущенки для востоновления умственной деятельности smile

Есть такой компонент как Magic CD Burner (BinaryMagic) вот он и читает это. Только его приручить нужно, тяжел он в освоении.

Это сообщение отредактировал(а) kirilllius - 9.12.2005, 11:57
PM MAIL   Вверх
MetalFan
Дата 24.1.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



если это кому еще интересно,
вот пример, позволяющий считывать ATIP, в частности ID производителя, которым является "длительность" диска.
Код

  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:Byte;
      LeadInMsf:array[0..2]of Byte;
      Reserved8:Byte;
      LeadOutMsf:array[0..2]of Byte;
      Reserved9:Byte ;
      A1Values:array[0..2]of Byte;
      Reserved10:Byte ;
      A2Values:array[0..2]of Byte;
      Reserved11:Byte ;
      A3Values :array[0..2]of Byte;
      Reserved12:Byte;
    end;
    CDROM_READ_TOC_EX = record
      par1: byte;
      //Format : UCHAR:4 ;
      // Reserved1 : UCHAR:3;
      // Msf : UCHAR:1 ;
      SessionTrack:Byte;
      Reserved2:Byte ;
      Reserved3:Byte;
    end;
    CDROM_TOC_ATIP_DATA =record
        Length:array [0..1] of Byte;
        Reserved1:Byte;
        Reserved2:Byte;
        Descriptors: array [0..0] of CDROM_TOC_ATIP_DATA_BLOCK;
    end;


  function GetCDDiskManufactureID( ADriveLetter: Char; var AID: string ): Boolean;
  var
    hCDDevice : THandle;
    in_data: CDROM_READ_TOC_EX;
    out_size: DWORD;
    out_data: CDROM_TOC_ATIP_DATA ;
  begin

    AID := '';
    G_LAST_ERROR := '';
    Result := False;

    FillChar( in_data,SizeOf(in_data),0);
    FillChar( out_data,SizeOf(out_data),0);
    in_data.par1 := CDROM_READ_TOC_EX_FORMAT_ATIP or (1 shl 7);
    in_data.SessionTrack :=  0;
    hCDDevice := CreateFile( PChar( '\\.\'+ADriveLetter+':'),
                                    GENERIC_READ,
                                    FILE_SHARE_READ or FILE_SHARE_WRITE,
                                    nil,
                                    OPEN_EXISTING,
                                    FILE_ATTRIBUTE_NORMAL, 0 );
    if hCDDevice <> INVALID_HANDLE_VALUE then
    begin
       Result := DeviceIoControl( hCDDevice,
                                  IOCTL_CDROM_READ_TOC_EX,
                                  @in_data,
                                  sizeof(in_data),
                                  @out_data,
                                  sizeof(out_data),
                                  out_size,
                                  nil );

       if Result then
         AID := Format( '%.2d%.2d%.2d', [ out_data.Descriptors[0].LeadInMsf[0],
                                          out_data.Descriptors[0].LeadInMsf[1],
                                          out_data.Descriptors[0].LeadInMsf[2]])
       else
         G_LAST_ERROR := SysErrorMessage( GetLastError );

      CloseHandle( hCDDevice );
   end
   else
     G_LAST_ERROR := SysErrorMessage( GetLastError )
  end;

думаю разобраться в коде не сложно.
глобальная строковая переменная исполользуется для получения сообщения об ошибке.
пример кода подсмотрен на delphikingdom, причесан и адаптирован под собственные нужды)


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
beginner2
Дата 23.2.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 22.2.2007

Репутация: нет
Всего: нет



Скажите, пожалуйста, а почему IOCTL_CDROM_READ_TOC_EX = $24054?
PM MAIL   Вверх
MetalFan
Дата 25.2.2007, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 16
Всего: 128



beginner2, а чему оно должно быть равно?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0739 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.