Укрощение строптивого… CD-ROM
От: Алексей Фоминов  
Дата: 02.03.06 17:14
Оценка: 50 (2)
Статья:
Укрощение строптивого… CD-ROM
Автор(ы): Алексей Фоминов
Дата: 02.03.2006
Кто не мечтает о быстром CD-ROM? Быстрый CD-ROM – это хорошо… с одной стороны. А если на компакт-диске появилась трещина? Быстрый CD-ROM – это уже не хорошо. На скорости 52 такой компакт-диск читать просто опасно. А если на этом диске жизненно важные данные? Выход есть. Просто снизить скорость привода. Если вы знакомы с языком программирования Object Pascal, тогда читайте далее.


Авторы:
Алексей Фоминов

Аннотация:
Кто не мечтает о быстром CD-ROM? Быстрый CD-ROM – это хорошо… с одной стороны. А если на компакт-диске появилась трещина? Быстрый CD-ROM – это уже не хорошо. На скорости 52 такой компакт-диск читать просто опасно. А если на этом диске жизненно важные данные? Выход есть. Просто снизить скорость привода. Если вы знакомы с языком программирования Object Pascal, тогда читайте далее.
Re: Укрощение строптивого… CD-ROM
От: spiritual  
Дата: 05.05.06 03:40
Оценка:
Здравствуйте, Алексей Фоминов, Вы писали:

АФ>Статья:

АФ>Укрощение строптивого… CD-ROM
Автор(ы): Алексей Фоминов
Дата: 02.03.2006
Кто не мечтает о быстром CD-ROM? Быстрый CD-ROM – это хорошо… с одной стороны. А если на компакт-диске появилась трещина? Быстрый CD-ROM – это уже не хорошо. На скорости 52 такой компакт-диск читать просто опасно. А если на этом диске жизненно важные данные? Выход есть. Просто снизить скорость привода. Если вы знакомы с языком программирования Object Pascal, тогда читайте далее.


АФ>Авторы:

АФ> Алексей Фоминов

АФ>Аннотация:

АФ>Кто не мечтает о быстром CD-ROM? Быстрый CD-ROM – это хорошо… с одной стороны. А если на компакт-диске появилась трещина? Быстрый CD-ROM – это уже не хорошо. На скорости 52 такой компакт-диск читать просто опасно. А если на этом диске жизненно важные данные? Выход есть. Просто снизить скорость привода. Если вы знакомы с языком программирования Object Pascal, тогда читайте далее.

Забавная статья.
Некоторые предложения:
1) Под Windows NT существует на самом деле еще один интерфейс для CD/DVD устройств — это DeviceIoCtrl. Большинство функций SPTI можно реализовать и через него. Хотя можно обойтись и одним SPTI, но работать с DeviceIo приятнее на порядок
2) Поскольку и SPTI и ASPI это SCSI интерфейсы существует веьмва элегантный способ транслировать вызовы ASPI в SPTI и наоборот простой перупаковкой параметров. Исходников на C++ достаточно много где это проделывается Поэтому поддержание 2-х интерфейсов совсем не так обременительно
Re: Укрощение строптивого… CD-ROM
От: Andrew S Россия http://alchemy-lab.com
Дата: 10.05.06 05:37
Оценка: 18 (1)
1.

Здесь я сделаю небольшое пояснение относительно размера буфера. Данные, возвращаемые при использовании страницы режима CD Capabilities and Mechanical Status Page, имеют размер 20 байт. Но, как вы заметили, я использовал буфер размером 30 байт, и вот почему. Перед самой страницей режима, идут заголовок режима параметров, код страницы и её размер. Размер заголовка при использовании шестибайтной команды MODE SENSE составляет 4 байта, а при использовании команды MODE SENSE(10) – 8 байт.


Это не так.Судя по спецификации, размер MM Capabilities and Mechanical Status Page, равен минимум 32 байтам, + еще возможные блоки Logical Unit Write Speed Performance Descriptor

2. Поля speedxxx, находящиеся по указанным смещениям, отражены в спецификации даже в MMC3 как obsolete. Об этом следовало бы хотя бы упомянуть — они совсем не обязательно должны содержать валидные данные.

3.

// почему сумма байт делится на 176? 176 – это скорость передачи
// данных, равная одному килобайту в секунду.


Супер . Вообще, это скорость передачи * 1000 байт в секунду (как мы помним, 1 скорость CD = 44100*4). Посему, поделив это значение на 176, мы получаем значение скорости в "CD" попугаях.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[2]: Укрощение строптивого… CD-ROM
От: Аноним  
Дата: 21.05.06 06:46
Оценка:
Здравствуйте, Andrew S, Вы писали:

AS>1.

AS>

AS>Здесь я сделаю небольшое пояснение относительно размера буфера. Данные, возвращаемые при использовании страницы режима CD Capabilities and Mechanical Status Page, имеют размер 20 байт. Но, как вы заметили, я использовал буфер размером 30 байт, и вот почему. Перед самой страницей режима, идут заголовок режима параметров, код страницы и её размер. Размер заголовка при использовании шестибайтной команды MODE SENSE составляет 4 байта, а при использовании команды MODE SENSE(10) – 8 байт.


AS>Это не так.Судя по спецификации, размер MM Capabilities and Mechanical Status Page, равен минимум 32 байтам, + еще возможные блоки Logical Unit Write Speed Performance Descriptor


AS>2. Поля speedxxx, находящиеся по указанным смещениям, отражены в спецификации даже в MMC3 как obsolete. Об этом следовало бы хотя бы упомянуть — они совсем не обязательно должны содержать валидные данные.


AS>3.

AS>

AS> // почему сумма байт делится на 176? 176 – это скорость передачи
AS> // данных, равная одному килобайту в секунду.


AS>Супер . Вообще, это скорость передачи * 1000 байт в секунду (как мы помним, 1 скорость CD = 44100*4). Посему, поделив это значение на 176, мы получаем значение скорости в "CD" попугаях.


Ответ по поводу размера страницы CD Capabilities and Mechanical Status Page:
Скачайте стандарт SCSI-3 Multimedia Commands с сайта t10.org откройте страницу 79 таблица 103 второй байт: "Page Length (14h)".
По поводу полей speedxxx: та же спецификация страницы с 79 по 82 ничего насчёт obsolete.
По поводу скорости передачи данных полностью согласен — моя грубая ошибка.
Re[2]: Укрощение строптивого… CD-ROM
От: Аноним  
Дата: 21.05.06 06:48
Оценка:
Здравствуйте, spiritual, Вы писали:

S>Здравствуйте, Алексей Фоминов, Вы писали:


АФ>>Статья:

АФ>>Укрощение строптивого… CD-ROM
Автор(ы): Алексей Фоминов
Дата: 02.03.2006
Кто не мечтает о быстром CD-ROM? Быстрый CD-ROM – это хорошо… с одной стороны. А если на компакт-диске появилась трещина? Быстрый CD-ROM – это уже не хорошо. На скорости 52 такой компакт-диск читать просто опасно. А если на этом диске жизненно важные данные? Выход есть. Просто снизить скорость привода. Если вы знакомы с языком программирования Object Pascal, тогда читайте далее.


АФ>>Авторы:

АФ>> Алексей Фоминов

АФ>>Аннотация:

АФ>>Кто не мечтает о быстром CD-ROM? Быстрый CD-ROM – это хорошо… с одной стороны. А если на компакт-диске появилась трещина? Быстрый CD-ROM – это уже не хорошо. На скорости 52 такой компакт-диск читать просто опасно. А если на этом диске жизненно важные данные? Выход есть. Просто снизить скорость привода. Если вы знакомы с языком программирования Object Pascal, тогда читайте далее.

S>Забавная статья.

S>Некоторые предложения:
S>1) Под Windows NT существует на самом деле еще один интерфейс для CD/DVD устройств — это DeviceIoCtrl. Большинство функций SPTI можно реализовать и через него. Хотя можно обойтись и одним SPTI, но работать с DeviceIo приятнее на порядок
S>2) Поскольку и SPTI и ASPI это SCSI интерфейсы существует веьмва элегантный способ транслировать вызовы ASPI в SPTI и наоборот простой перупаковкой параметров. Исходников на C++ достаточно много где это проделывается Поэтому поддержание 2-х интерфейсов совсем не так обременительно

Ответ по цитате:
Существует, только это интерфейс не только для CD/DVD устройств, а почти для всех устройств. Работать с DeviceIo приятней наверное для других устройств, вряд ли б многие разработчики использовали ASPI или SPTI, если б с DeviceIo было работать приятнее. И врядли работать с CD-приводами посредством DeviceIo приятнее в Windows 9x.
Re[3]: Укрощение строптивого… CD-ROM
От: Andrew S Россия http://alchemy-lab.com
Дата: 22.05.06 05:09
Оценка:
А>Ответ по поводу размера страницы CD Capabilities and Mechanical Status Page:
А>Скачайте стандарт SCSI-3 Multimedia Commands с сайта t10.org откройте страницу 79 таблица 103 второй байт: "Page Length (14h)".

Я и говорю про MMC3 — давайте уж использовать устоявшиеся сокращения Скачайте MMC3 с того же t10.org и посмотрите CD Capabilities and Mechanical Status Page — TABLE 361. Аналогично и для MMC4\5.


Table 361 – CD/DVD Capabilities and Mechanical Status Page
Bit
Byte
7 6 5 4 3 2 1 0
0 PS Reserved Page Code (2Ah)
1 Page Length (28+4*(maximum number of n))

А>По поводу полей speedxxx: та же спецификация страницы с 79 по 82 ничего насчёт obsolete.

Аналогично.
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[4]: Укрощение строптивого… CD-ROM
От: Аноним  
Дата: 28.05.06 12:45
Оценка:
Здравствуйте, Andrew S, Вы писали:

А>>Ответ по поводу размера страницы CD Capabilities and Mechanical Status Page:

А>>Скачайте стандарт SCSI-3 Multimedia Commands с сайта t10.org откройте страницу 79 таблица 103 второй байт: "Page Length (14h)".

AS>Я и говорю про MMC3 — давайте уж использовать устоявшиеся сокращения Скачайте MMC3 с того же t10.org и посмотрите CD Capabilities and Mechanical Status Page — TABLE 361. Аналогично и для MMC4\5.



AS>

AS>Table 361 – CD/DVD Capabilities and Mechanical Status Page
AS>Bit
AS>Byte
AS>7 6 5 4 3 2 1 0
AS>0 PS Reserved Page Code (2Ah)
AS>1 Page Length (28+4*(maximum number of n))

А>>По поводу полей speedxxx: та же спецификация страницы с 79 по 82 ничего насчёт obsolete.

AS>Аналогично.


А у Вас какая версия ММС3? У меня — 10А, и в ней последняя таблица с №174. Таблицы 361 у меня и в помине нет. Сообщите пожалуйста вашу версию.
И ещё просьба к Вам, можете ли Вы мне выслать номер журнала с моей статьёй за отдельную плату?
Заранее благодарен.
С уважением Алексей Фоминов.
Re[5]: Укрощение строптивого… CD-ROM
От: Andrew S Россия http://alchemy-lab.com
Дата: 28.05.06 17:19
Оценка:
А>А у Вас какая версия ММС3? У меня — 10А, и в ней последняя таблица с №174. Таблицы 361 у меня и в помине нет. Сообщите пожалуйста вашу версию.

Revision 10g November 12, 2001


А>И ещё просьба к Вам, можете ли Вы мне выслать номер журнала с моей статьёй за отдельную плату?


Это к редакции. Я к RSDN никакого отношенмя не имею
http://www.rusyaz.ru/pr — стараемся писАть по-русски
Re[3]: Укрощение строптивого… CD-ROM
От: Аноним  
Дата: 08.06.06 04:35
Оценка:
А>Существует, только это интерфейс не только для CD/DVD устройств, а почти для всех устройств. Работать с DeviceIo приятней наверное для других устройств, вряд ли б многие разработчики использовали ASPI или SPTI, если б с DeviceIo было работать приятнее. И врядли работать с CD-приводами посредством DeviceIo приятнее в Windows 9x.

Потому и мучаются — ну нет в windows 9x DeviceIoctrl. Вот и пишут на связке ASPI/SPTI
Но сейчас, когда Windows умерла — использование DeviceIoctrl не возбраняется

На самом деле SPTI тоже через вызовы DeviceIoCtrl сделана с кодом IOCTRL_SCSI_PASSTHROUGH_WITH_BUFFERS.
DeviceIoCtrl — это прямой интерфейс к драйверу любого устройства. Необходимы привилегии админа только

Прямые вызовы DeviceIoctrl делаются с готовыми кодами типа IOCTRL_CDROM_READ_TOC и т.п.
Но MS не опубликовала все необходимые для счастья коды в MSDN
А лазить по Windows Device Driver Kit (DDK) удовольствие ниже среднего,
Да его и еще и иметь надо. Зато результат получается не сравнимый ни с чем
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.