![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
p0s0l |
|
||||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Делаю так:
Потом так:
И еще так:
IOCTL_STORAGE_LOAD_MEDIA завершается, когда "подставка под кофе" въехала в CD-ROM. Но CD-ROM еще ведь не раскрутился, а раскручивается он у меня ой как долго, и поэтому две последующие функции обламываются... Как бы раскрутить сидюк? Если просто вставить какой-нибудь sleep(10*1000), то нет, не раскручивается. FindFirst..FindNext тоже обламываются и не раскручивают... Как например TotalCommander раскручивает сидюк ? -------------------- С уважением, г-н Посол. |
||||||
|
|||||||
Jey_k |
|
|||
![]() WEB-командир ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4149 Регистрация: 16.11.2003 Где: Москва Репутация: 1 Всего: 61 |
p0s0l
Думаю придется кодить порты под ассемблером |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
То есть нужно лишь раскрутить сидюк? Может воспользоваться ASPI интерфейсом с командой SCSI_PAUSE_RESUME?
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
<Spawn>, никогда не слышал. Покажи как ?
Добавлено @ 19:17 Jey_k, не это уж слишком. Должен быть нормальный способ... -------------------- С уважением, г-н Посол. |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Вот функция для этого интерфейса переведенная мною с Си из книженции
![]()
Но дело в том что нужно еще передать правильные параметры Adapter и Target, для этого ,на сколько я понял, нужно использовать функцию инициализации ASPI(она заодно и количество найденных устройств возвращает). Если ни чего не найдешь по этому поводу, то попробую еще в книженции порыться ![]() П.С. Хотя по идее должен быть какой то более простой вариант Добавлено @ 19:44 Сейчас маленько порылся и нашел еще одну интересную команду - START/STOP UNIT. Она позволяет останавливать\запускать\выгружать\загружать диск. Это сообщение отредактировал(а) <Spawn> - 31.3.2004, 19:47 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
<Spawn> |
|
||||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Вот я тут маленько наэксперементировался - у меня все прекрасно работает:
Wnaspi32:
Прога:
Это сообщение отредактировал(а) <Spawn> - 31.3.2004, 20:55 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
||||
|
|||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
<Spawn>, thanx, завтра попробую, а щас спать!
Плюс тебе за всё хорошее, как говорится. -------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Блин, палки в колеса... Поначалу материлось, что нет wnaspi32.dll... Поставил ASPI дрова. Потом опять такая фишка:
у меня 1 реальный CD и 2 виртуальных, т.е. всего 3 штуки. На CDOperation идет только 2 раза... И ничего не делается... Ладно, делаю вообще так:
Тоже ноль реакции... Ни в виртуальных, ни в реальном CDюкахничего не происходит. Функция CDOperation была немного неправильной, SendASPI32Command возвращал ошибку, надо строку hEventASPI := CreateEvent(nil, True, False, nil) поставить перед SRB_PostProc := Pointer(hEventASPI), тогда всё ОК типа, но всё равно глухо (ни одна cdo* не работает)... Посмотрел - все функции возвращают статус ОК, но ничего не происходит... Кроме PauseResume - сама функция возвращает 0, в поле Exec.SRB_Status = 4 (SB_ERR)... Там кстати тоже такая же история с hEventASPI, но дело это не спасло... Где взято определение константы SCSI_PAUSE_RESUME ? Такой константы (самого названия и значения $4B) нет ни в MSDN, ни в хэдерах, идущих с ASPI дровами... И где ты взял инфу про поле CDBByte, что туда заносить ? То что в CDByte[0] заносится SCSI_START_STP (=$1B) - это понятно, но почему потом именно в [4] заносишь код операции (Stop, Resume, etc...), и почему Stop=0, Resume=1, и т.д. ? Где об этом можно почитать ? (или методом тыка ?) Я там нашел интересные названия констант, хотелось бы испробовать, тем более, что как раз мне это и нужно (работа напрямую с CD, а именно, нахождение Bad-секторов)... -------------------- С уважением, г-н Посол. |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
У меня в книге все расписано по этому интерфейсу. Значения CDBByte зависят от выполняемой команды. SCSI_START_STP тоже описана в книженции. Странно что у тебя не работает, у меня все 4 опреации работают на ура - открываю\закрываю сидюк и останавливаю\запускаю его.
Добавлено @ 15:41 Может у тебя другая версия ДЛЛ-ки? Скажи мыло пришлю свою ДЛЛ. -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Версия 4.71.2
Мыло - есть в профиле, но так скажу: p0s0l_pisem.net -------------------- С уважением, г-н Посол. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
<Spawn>, спасибо. Дрова спасли дело. У меня были Adaptec дрова, а ты мне прислал Nero-дрова. Они работают как-то совсем по-разному... К чему бы это ?
-------------------- С уважением, г-н Посол. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |