Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
33_Metodicheskie_ukazania_po_laboratornym_rabot...doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
706.56 Кб
Скачать

Использование I/o Control Codes.

I/O control codes (далее IOCTL) используются для связи пользовательских приложений с драйверами устройств либо для связи драйверов и стэка устройства. Поьзовательские приложения посылают IOCTL драйверу при поможи вызова функции DeviceIoControl, которая подробно описана в Platform SDK. Вызов DeviceIoControl говорит I/O Manager’у создать IRP_MJ_DEVICE_CONTROL-запрос и послать его драйверу верхнего уровня. В свою очередь драйвер верхнего уровня может послать IOCTLs к драйверам более низкого уровня при поможи создания и посылки сообщений IRP_MJ_DEVICE_CONTROL или IRP_MJ_INTERNAL_DEVICE_CONTROL. Драйвер обрабатывает запрос в процедурах DispatchDeviceControl и DispatchInternalDeviceControl. Следует заметить, что пользовательские приложения не могут посылать IRP_MJ_INTERNAL_DEVICE_CONTROL запросы к драйверам напрямую.

Для получение информации об приводе компакт дисков могут использоваться запросы следующих групп: IOCTL_DISK_*, IOCTL_STORAGE_*, IOCTL_CDROM_*, IOCTL_DVD_*. Выбор сообщения будет обусловлен тем уровнем на котором будет использоваться устройство, т.е. если под ним будет пониматься устройство хранения данных то это будет запрос группы IOCTL_STORAGE_*, если это будет дисковое устройство хранения информации, то используется функция IOCTL_CDROM_* и т.д. Так в частности на последнем уровне (IOCTL_CDROM_*) возможно управление процессом воспроизведения звукового сигнала с компакт диска.

Использование Windows Management Instrumentation (wmi).

Windows Management Instrumentation (далее WMI) – это масштабируемая система управления инфраструктурой которая использует единый, стандартизированный, расширяемый, объектно-ориентированный интерфейс. WMI предоставляет программисту взаимодействовать с системой управления информацией и прилежащими WMI API.

При выборе данной технологии, для получения информации о CD-ROM приводе используется класс Win32_CDROMDrive. Следует учитывать что имя устройства может не совпадать с буквой логического диска ассоциированной с ним..

Ниже описан синтаксис данного класса в соответствии с Managed Object Format (MOF) и включающим все наследуемые свойства.

class Win32_CDROMDrive : CIM_CDROMDrive

{

uint16 Availability;

uint16 Capabilities[];

string CapabilityDescriptions[];

string Caption;

string CompressionMethod;

uint32 ConfigManagerErrorCode;

boolean ConfigManagerUserConfig;

string CreationClassName;

uint64 DefaultBlockSize;

string Description;

string DeviceID;

string Drive;

boolean DriveIntegrity;

boolean ErrorCleared;

string ErrorDescription;

string ErrorMethodology;

uint16 FileSystemFlags;

uint32 FileSystemFlagsEx;

string Id;

datetime InstallDate;

uint32 LastErrorCode;

string Manufacturer;

uint64 MaxBlockSize;

uint32 MaximumComponentLength;

uint64 MaxMediaSize;

boolean MediaLoaded;

string MediaType;

string MfrAssignedRevisionLevel;

uint64 MinBlockSize;

string Name;

boolean NeedsCleaning;

uint32 NumberOfMediaSupported;

string PNPDeviceID;

uint16 PowerManagementCapabilities[];

boolean PowerManagementSupported;

string RevisionLevel;

uint32 SCSIBus;

uint16 SCSILogicalUnit;

uint16 SCSIPort;

uint16 SCSITargetId;

uint64 Size;

string Status;

uint16 StatusInfo;

string SystemCreationClassName;

string SystemName;

real64 TransferRate;

string VolumeName;

string VolumeSerialNumber;

};

Рассмотрим свойства предоставляемые данным классом более подробно:

Availability – доступность и статус устройства.

Capabilities – массив с возможностями устройству. На пример устройство может поддерживать случайный доступ (флаг 3), оно может быть извлекаемым (флаг 7), и т.д.

CapabilityDescriptions – массив с более с более детальной информацией о Capabilities.

Caption –короткое описание объекта(одной строкой).

CompressionMethod – Алгоритм или инструмент используемый устройством для поддержания компрессии. Здесь может находиться слово "Unknown" если метод неизвестен либо неподерживается.

ConfigManagerErrorCode – Код ошибки в Windows Configuration Manager.

ConfigManagerUserConfig – если TRUE, то к устройству применены пользовательские настройки.

DefaultBlockSize – значение размера блоков по умолчанию

Description – описание объекта.

DeviceID – Уникальный идентификатор CD_ROM.

Drive – Буква диска CD-ROM. На пример: "d:\"

DriveIntegrity – Если TRUE, файлы могут быть бехошибачно прочитаны с устройства CD. Это добивается при помощи двойного чтения блока данных с диска и их сравнением.

ErrorCleared – Если TRUE, то значение LastErrorCode очищено(пусто).

ErrorDescription – Подробная информация об ошибке хранящейся в LastErrorCode, и информация об действиях по её устранению.

ErrorMethodology – Тип обнаруженной ошибки и вид корректировки под поддерживаемый устройством.

FileSystemFlags – Данный свойство устарело и сохранено лишь для совместимости. На его мессе используется свойство FileSystemFlagsEx.

FileSystemFlagsEx – Файловая система ассоциированная с CD-ROM в Windows.

Id –уникальная буква идентифицирующая устройство CD-ROM. Пример: "d:\"

InstallDate – Дата и время установки устройства.

LastErrorCode – Код последней ошиби вызванной устройством.

Manufacturer – Производитель Пример:"PLEXTOR".

MaxBlockSize – Максимальный размер блока(в байтах) поддерживаемый устройством.

MaximumComponentLength – Максимальнгая длина имени файла поддерживаемая устройством.

MaxMediaSize – Максимальный размер(в килобайтах) данных поддерживаемый данным устройством.

MediaLoaded – Если TRUE, в устройстве есть компакт диск.

MediaType – тип используемых данных либо тип доступа к ним устройством. В данном случае это значение всегда равно "CD-ROM".

MfrAssignedRevisionLevel – В Windows XP and Windows Server 2003:  Версия firmware назначенная производителем.

MinBlockSize – Минимальный размер блока(в байтах) для дисков используемых данным приводом.

Name – Имя объекта.

NeedsCleaning – Если TRUE, диск в устройстве нуждается в очистке.

PNPDeviceID – Идентификатор устройства в Windows Plug and Play. Пример: "*PNP030b".

PowerManagementSupported – Если TRUE, устройство поддерживает управление питанием.

RevisionLevel – Версия firmware.

SCSIBus – номер SCSI-шины с установленным диском.

Size – Объем диска в устройстве.

Status – Текущий статус устройства. ("OK", "Degraded", "Pred Fail", "Error", "Starting", "Stopping", и "Service").

StatusInfo – Статус логического устройства.

TransferRate – скорость передачи устройства CD-ROM. Ели значение равно -1, указывает на невозможность получения скорости, либо об отсутствии диске в устройства.

VolumeName – Имя томя в устройстве.

VolumeSerialNumber – Серийный номер диска в устройстве. Пример: A8C3-D032

Варианты лабораторных работ:

Варианта

Задание

1

Определение Availability

2

Описание объекта (Description)

3

Определение буквы диска

4

Определить уникальный идентификатор CD_ROM

5

Определить версию Firmware

6

Проверка поддержки PowerManagementSupported

7

Проверка StatusInfo

8

Опредение VolumeName

9

Определение VolumeSerialNumber

0

Определение PNPDeviceID

Лабораторная работа № 4.

Программное тестирование контроллера накопителей на гибких дисках

Цель работы: изучение методов диагностирования контроллера накопителей на гибких дисках.

Основные сведения о контроллере

Управление гибкими дисками в PC-подобных ПЭВМ осуществляется микросхемой 8272А фирмы Intel, выполняющей функции контроллера гибких дисков (Floppy Disk Controller, FDC). Как известно, информация на дискете хранится на дорожках, дорожки разбиты на сектора. В зависимости от типа дисковода число дорожек на одной стороне дискеты может быть равно 40 или 80, число секторов на дорожке колеблется от 8 до 26. Кроме того существуют дисководы, имеющие одну головку чтения/записи (при этом вторая сторона дискеты не используется). Контроллер управляет дисководами для дискет диаметром 5.25 и 3.5 дюйма, поддерживает запись на дискету методами ЧМ и МЧМ, программируемую длину секторов (128, 256, 512 или 1024 байта), мультисекторные и мультидорожечные операции обмена с дисками, операции поиска. Одновременно к одному контроллеру может быть подключено до четырех дисководов любого из поддерживаемых типов. Обмен с диском может осуществляться как с использованием ПДП, так и без него. В последнем случае используются 2 метода: опрос состояния контроллера через регистры или использование аппаратных прерывания контроллера. FDC генерирует аппаратные прерывания уровня 6 (IRQ6), связанные с вектором прерываний 0Eh. Управление контроллером и накопителями осуществляется через 3 порта ввода-вывода.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]