информационная безопасность
без паники и всерьез
 подробно о проекте
Где водятся OGRыЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Модульный ботнет от русских хакеров 
 Торвальдс и вайбтестеры 
 Атака на GitHub 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] CD-ROM sector reading 22.09.01 10:20  Число просмотров: 988
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
> Под WinNT все нормально. Под 9х обнаруживаю, что необходимо
> обращатся к MSCDEX через прерывание 2Fh. Из 32 разрядного
> приложения этого сделать нельзя. Или можно? Если верить
> мелко мягким, придется писать две ДЛЛ, одна 32, другая 16
> разрядные. Есть такие у кого? И еще, как установить
> скорость считывания с компакт диска по своему
> усмотрению(например 2х).

Под Win32 лучше юзать WinASPI (wnaspi32.dll)
Для установки скорости используется команда 0xBB, но не все сидюки это поддерживают:
bool SetSpeed(int arg_0)
{
  SRB_ExecSCSICmd var_50;

  memset(&var_50, 0, sizeof (var_50));
  var_50.CDBByte[0] = 0xBB;                
  var_50.CDBByte[2] = SpeedKb1x*arg_0 >> 8;   
  var_50.CDBByte[3] = SpeedKb1x*arg_0;      
  ExecSCSICommand(&var_50);
  return (var_50.SRB_Status == SS_COMP);
}
 
bool ExecSCSICommand(PSRB_ExecSCSICmd arg_0)
{
  arg_0->SRB_Cmd = SC_EXEC_SCSI_CMD; 
  arg_0->SRB_HaId = nAdapter;           
  arg_0->SRB_Target = SCSI_ID;       
  arg_0->SRB_SenseLen = SENSE_LEN; 
  arg_0->SRB_CDBLen = 0xC;               
  SendASPI32Command((LPSRB) arg_0);
  while ( *(volatile char*) &arg_0->SRB_Status == SS_PENDING);
  return (arg_0->SRB_Status == SS_COMP);
}

---
<programming>
[Win32] CD-ROM sector reading 22.09.01 08:53  
Автор: Alex_K Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Под WinNT все нормально. Под 9х обнаруживаю, что необходимо обращатся к MSCDEX через прерывание 2Fh. Из 32 разрядного приложения этого сделать нельзя. Или можно? Если верить мелко мягким, придется писать две ДЛЛ, одна 32, другая 16 разрядные. Есть такие у кого? И еще, как установить скорость считывания с компакт диска по своему усмотрению(например 2х).
[Win32] CD-ROM sector reading 22.09.01 10:20  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
> Под WinNT все нормально. Под 9х обнаруживаю, что необходимо
> обращатся к MSCDEX через прерывание 2Fh. Из 32 разрядного
> приложения этого сделать нельзя. Или можно? Если верить
> мелко мягким, придется писать две ДЛЛ, одна 32, другая 16
> разрядные. Есть такие у кого? И еще, как установить
> скорость считывания с компакт диска по своему
> усмотрению(например 2х).

Под Win32 лучше юзать WinASPI (wnaspi32.dll)
Для установки скорости используется команда 0xBB, но не все сидюки это поддерживают:
bool SetSpeed(int arg_0)
{
  SRB_ExecSCSICmd var_50;

  memset(&var_50, 0, sizeof (var_50));
  var_50.CDBByte[0] = 0xBB;                
  var_50.CDBByte[2] = SpeedKb1x*arg_0 >> 8;   
  var_50.CDBByte[3] = SpeedKb1x*arg_0;      
  ExecSCSICommand(&var_50);
  return (var_50.SRB_Status == SS_COMP);
}
 
bool ExecSCSICommand(PSRB_ExecSCSICmd arg_0)
{
  arg_0->SRB_Cmd = SC_EXEC_SCSI_CMD; 
  arg_0->SRB_HaId = nAdapter;           
  arg_0->SRB_Target = SCSI_ID;       
  arg_0->SRB_SenseLen = SENSE_LEN; 
  arg_0->SRB_CDBLen = 0xC;               
  SendASPI32Command((LPSRB) arg_0);
  while ( *(volatile char*) &arg_0->SRB_Status == SS_PENDING);
  return (arg_0->SRB_Status == SS_COMP);
}

---
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach