Рефераты | Рефераты по информатике, программированию | Как сделать чтобы запущеный exe сам себя удалил? | страница реферата 11 | Большая Энциклопедия Рефератов от А до Я
Большая Энциклопедия Рефератов от А до Я
  • Рефераты, курсовые, шпаргалки, сочинения, изложения
  • Дипломы, диссертации, решебники, рассказы, тезисы
  • Конспекты, отчеты, доклады, контрольные работы

  • Я понимаю, что многим эта процедура покажется неинтересной – я её привёл лишь для того, чтобы показать основы работы со SCSI-устройствами.

    Следующие две процедуры, на мой взгляд, заинтересуют большее число пользователей. Уверен, многие из вас постоянно пользуются, или пользовались ранее, программами, управляющими скоростью привода CD-ROM (например, программой CDSlow). Хотите написать подобную программу сами? Позвольте помочь вам кодом, состоящим из двух процедур, одна из которых определяет текущую и максимально поддерживаемую скорость привода, а другая устанавливает необходимую пользователю скорость.

    Для этого я воспользовался SCSI-командой MODE SENSE(10). Цифра десять означает, что команда десятибайтная. Это важно, потому что существует такая же шестибайтная команда. В принципе, можно было бы воспользоваться и шестибайтной командой, но поскольку команда MODE SENSE(10) более совершенна, я остановил свой выбор на ней. Итак, для чего же нужна данная команда? Всё просто, она читает значения режимов (Mode Sense), установленных для SCSI-устройства. Существуют так называемые страницы режима (Mode Page), в которых хранится некоторая информация (например, параметры скорости привода, параметры для записи CD-R/RW-дисков и многое другое). Доступ к этим страницам осуществляется по их коду с использованием команды MODE SENSE.

    Опишем вспомогательный тип TCDSpeeds.

    type

     TCDSpeeds=record

     MaxSpeed, // максимальная скорость чтения

     CurrentSpeed, // текущая скорость чтения

     MaxWriteSpeed, // максимальная скорость записи

     CurrentWriteSpeed:integer; // текущая скорость записи

     end;

    Теперь, я думаю, понятно для чего эта структура нужна.

    // какие параметры передавать функции, объяснять, по моему, не надо

    function GetCDSpeeds(Host,Target,Lun:Byte):TCDSpeeds;

    var

     buffer: array [0..29] of Byte; // буфер для принимаемых данных

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

    Продолжим. Код, который уже встречался ранее, приведен без комментариев:

    begin


    Рекомендуем скачать другие рефераты по теме: шпоры по гражданскому праву, заказать дипломную работу.



    Предыдущая страница реферата | 6  7  8  9  10  11  12  13  14  15  16 |




    Поделитесь этой записью или добавьте в закладки

       




    Категории:



    Разделы сайта




    •