Дослідження можливостей використання функцій IOCTL у середовищі OS

Характеристика операцій отримання інформації про відкриття файлу (00h), перевірки розташування дисководу (09h), можливості заміни носія даних на ньому (08h) та одержання поточних параметрів пристрою (60h) як основних функцій IOCTL у середовищі OS.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык украинский
Дата добавления 17.06.2010
Размер файла 17,5 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Лабораторна робота

"Дослідження можливостей використання функцій IOCTL у середовищі OS"

Мета роботи:

Навчитися одержувати різну інформацію за допомогою функцій IOCTL; вивчити основи загального керування введення-виведення.

Теоретичні відомості:

За допомогою підфункції 00h можна одержати інформацію про відкритий файл або пристрій по файловому індексу. Ця функція приймає в якості першого параметру файловий індекс відкритого файлу або пристрою й адресу слова, у якій він запише інформацію про пристрій або файл, пов'язаний із цим файлом індексом.

Формат слова, що містить інформацію про пристрій або файл:

Таблиця 2.1

Біт

Значення

0

1

2

3

4

5

6

7

8-10

11

12

13

14

15

Стандартний пристрій уведення

Стандартний пристрій виводу

NUL-пристрій

Годинники

Спеціальний пристрій

1 - двійковий режим роботи; 0 - режим ASCII

0 - при читанні досягнути кінець файлу

1 - це слово інформації відноситься до пристрою; 0 - слово інформації відноситься до файлу

Зарезервовано

1 - пристрій підтримує команди відкриття/закриття

Мережний пристрій

Пристрій підтримує вивід до стану зайнятості

Пристрій може обробляти управляючі рядки IOCTL, що посилаються підфункціями 2,3,4,5 функції 44h. Цей біт може бути тільки прочитано, його установку підфункцією 1 функції 44h не виробляється.

Зарезервовано

Для файлу:

Таблиця 2.2

Біт

Значення

0-5

6

7

8-11

12

13-14

15

Номер дисководу (0-А,З і т.д.)

0 - Був запис у вихідний файл

1 - це слово інформації відноситься до пристрою; 0 - слово інформації відноситься до файлу

Зарезервовано

Мережний пристрій ( тільки для DOS версії 3.0 і більш пізніх версій)

Зарезервовано

1 - Даний файл є вилученим при роботі в мережі (тільки для DOS версії 3.0 і більш пізніх версій)

Підфункція 06h функції 44h переривання INT 21h може визначити момент досягнення кінця файлу або готовність пристрою посимвольної обробки.

Підфункція 0Ah функції 44h переривання INT 21h допоможе програмі, що працює в мережі, визначити розташування відкритого файлу або пристрою - на робочій станції або сервері.

Перед викликом запишіть у регістр BX файловий індекс перевіряємого файлу або пристроїв.

Після повернення з підфункції регістр DX містить слово атрибутів для файлу або пристрою. Якщо самий старший біт у цьому слові дорівнює нулю, то файл або пристрій є локальним й розташовані на робочій станції. Якщо ж цей біт дорівнює одиниці, то файл або пристрій вилучене й перебуває на сервері.

Звичайно програми складають таким чином, щоб їхня робота не залежала від розташування.

Аналогічно для перевірки розташування дисководу можна використовувати підфункцію 09h.

Перед викликом запишіть у регістр BL код дисководу (0-поточний дисковод, 1-A:, 2-B:, і т.д.). 12 біт регістра DX після виклику цієї функції покаже розташування дисководу: 0-локальне, 1- вилучене.

Для перевірки можливості заміни носія даних у дисководі можна скористатися підфункцією 08h. Використовуючи цю підфункцію можна відрізнити НГМД від НМД. Перед викликом підфункції 08h запишіть код пристрою в регістр BL. Якщо носій даних змінний, то після виконання підфункції регістр AL буде містити 0, у противному випадку 1. Підфункція 0Dh функції 44h переривання INT 21h забезпечує механізм взаємодії між прикладним програмним забезпеченням і драйверами блокових пристроїв. Ця підфункція дозволяє програмам читати й змінювати параметри пристроїв, представляє можливість виконувати апаратно-незалежне читання, запис, форматування й перевірку доріжок диска.

Формат виклику цієї підфункції: INT 21h 44h 0Dh Загальне управління введення/виведення GENERIC IOCTL.

Таблиця 2.3

Регістр

Зміст

Виклик:

AH

AL

BL

CH

CL

DS:DX

Повернення без помилки:

CF

Повернення з помилкою:

CF

AX

44h

0Dh

Номер дисководу (0-поточний дисковод, 1 - дисковод А і т.д.)

Код категорії пристрою: 08h - дисковий пристрій

Операція:

40h - установити параметри пристрою

60h - одержати параметри пристрою

41h - записати доріжку на логічному пристрої

61h - прочитати доріжку на логічному пристрої

42h - форматувати доріжку на логічному пристрої

62h - перевірити доріжку на логічному пристрої

Покажчик на блок параметрів

0

1

Код помилки

Формат блоку параметрів залежить від виконуваної операції CL=40h/60h (одержати/установити параметри пристрою).

Таблиця 2.4

Зсув

Розмір

Уміст поля

(1)

(+1)

(+2)

(+4)

(+6)

(+7)

(+38)

1

1

2

2

1

31

?

Спеціальні функції:

Біт 0: В операції 60h значення цього біта, рівне 1, використовується для добування поточного ВРВ, як якби він був отриманий по команді драйвера з кодом 2 (побудувати ВРВ). Значення цього біта, рівне 0, говорить про те, що треба витягти ВРВ, використовуваний за замовчуванням. Для операції з кодом 40h, значення біта, рівне 1, використовується для вилучення поточного ВРВ, значення 0 приводить до використання ВРВ, підготовленого в даному блоці параметрів;

Біт 1: Значення цього біта, рівне 1, - це вказівка ігнорувати всі поля в блоці параметрів, крім поля опису фізичної структури доріжки на даному пристрої;

Біт 2: Значення цього біта, рівне 1, говорить про те, що всі сектори на цій доріжці мають однаковий розмір.

Тип пристрою, що вертається драйвером:

0-320/360 До флоппі-диск (5,25");

1-1,2Мбайт флоппі-диск (5,25");

2-720Кбайт флоппі-диск (3,5");

3-8" флоппі-диск нормальної щільності;

4-8" флоппі-диск подвійної щільності;

5-жорсткий диск;

6-накопичувач на магнітній стрічці;

7-1,44 Мбайт флоппі-диск (3,5") і інші дискові пристрої.

Атрибути пристрою, що вертаються драйвером. У цьому полі використовуються тільки 2 молодших біти. Біт 0 - ознака заміни носія даних (0-змінна, 1-незмінна), біт 1 - ознака наявності апаратного контролю заміни дискети (1-контроль виконується, 0-контроль не виконується). Інші біти зарезервовано й повинні містити 0.

Максимальна кількість циліндрів на фізичному пристрої. Це поле установлюється драйвером.

Тип середовища носія даних. Використовується для пристроїв, що підтримують кілька типів носіїв даних, наприклад для флоппі-дисковода на 1.2 Мбайт значення цього поля, рівне 0, відповідає дискеті на 1,2 Мбайт, а 1-360Кбайт.

ВРВ для пристрою. Якщо біт 0 поля спеціальних функцій скинутий, то в цьому полі перебуває новий ВРВ для пристрою. Якщо біт 0 установлений, драйвер пристрою повертає ВРВ для всіх наступних запитів на побудову ВРВ.

Таблиця розмітки доріжки, має змінну довжину

Таблиця розмітки доріжки починається із двухбайтового слова, утримуючу загальну кількість секторів на доріжці. Потім для кожного сектора в таблиці знаходиться по два двобайтних слова, що містять номер сектора й розмір сектора. Тобто для кожного сектора в таблиці міститься два слова.

Якщо в поле "спеціальні функції" біт 2 установлений в 1, розмір всіх секторів повинен бути однаковим.

CL=41h/61h (записати/прочитати доріжку)

Таблиця 2.5

Зсув

Розмір

Уміст поля

(0)

(+1)

(+3)

(+5)

(+7)

(+9)

1

2

2

2

2

4

Спеціальні функції (це поле завжди містить 0)

Номер головки

Номер доріжки

Номер початкового сектора (нумерація з 0)

Загальна кількість секторів на доріжці, зменшене на одиницю

FAR-покажчик на буфер обміну з диском, у який міститься зчитувана інформація або звідки береться записувана інформація

CL=24h/62h (форматувати/перевірити доріжку)

Таблиця 2.6

Зсув

Розмір

Уміст поля

(0)

(+1)

(+3)

1

2

2

Спеціальні функції. Для цієї операції визначений тільки біт 0.

Перед викликом команди значення біта, рівне 0, потребується для форматування доріжки. Якщо цей біт установлений в 1, то перевіряється можливість використовування за даного формату доріжки. Якщо після виконання команди значення біта 0 дорівнює 0, то підтримується заданий формат доріжки заповнену таблицю розмітки доріжки можна використовувати.

Якщо значення біта 0 дорівнює 1, то вимогливий формат доріжки не підтримується.

Номер головки для форматування /перевірки

Номер доріжки для форматування/перевірки

Перед початком виконання операції програма повинна одержати й зберегти поточні параметри пристрою. Для їхнього одержання необхідно виконати операцію з кодом 60h. Потім програма повинна встановити нові параметри пристрою, які будуть використані в операціях читання/запису, перевірки або форматування. Для установки параметрів програма повинна виконати операцію з кодом 40h.

Після виконання операції програма повинна відновити першоначальні параметри пристрою, виконавши операцію з кодом 40h.

Порядок виконання роботи:

1. Вивчити основні теоретичні відомості й додаткову літературу, присвячену даній темі.

2. Вивчити основні функції IOCTL одержання інформації й управління введенням-виведенням.

3. Написати програму.

4. Зробити звіт.

Контрольні запитання:

1. У яких випадках використовуються функції IOCTL?

2. Як здійснюється введення-виведення з використанням функцій IOCTL?

3. Що таке драйвер і що він робить?

4. Як програмі обмінятися інформацією із драйвером?

5. Що таке поточні параметри пристрою?


Подобные документы

  • Створення файлу з базою даних про учбову та науково-технічну літературу та файлу, що зберігає інформацію виведену в нього в результаті запиту. Стандартні процедури та функцій, що використовуються у програмі. Приклад тестування та результату її роботи.

    курсовая работа [1,0 M], добавлен 16.11.2013

  • Створення, редагування та синтаксис функцій Excel. Призначення функцій: фінансових, дати і часу, математичних, статистичних, посилань і масивів, роботи з базами даних, текстових, логічних, перевірки властивостей і значень. Помилки при обчисленнях формул.

    лабораторная работа [636,5 K], добавлен 29.11.2013

  • Ознайомлення з операціями середовища MatLAB на прикладі використання стандартних функцій, побудови файлів-сценаріїв і створення функцій користувача. Роботи з матрицями і векторами в середовищі MatLAB, рішення тригонометричних функцій, побудова графіків.

    лабораторная работа [11,2 M], добавлен 21.05.2019

  • Таблиця істинності логічних функцій пристрою, який необхідно синтезувати. Отримання логічних функцій пристрою та їх мінімізація за допомогою діаграм Вейча. Побудова та аналіз структурної схеми пристрою в програмі AFDK з логічними елементами до 3-х входів.

    курсовая работа [320,4 K], добавлен 03.05.2015

  • Загальний опис гри "Тетріс", огляд основних об’єктів та клавіш управління грою. Розробка інтерфейсу користувача та основних модулів. Алгоритм ігрового поля, блок-схема алгоритму перевірки можливості зміни розташування фігури та переміщення фігури вниз.

    курсовая работа [1,9 M], добавлен 18.02.2013

  • Задачі інформаційних систем криптографічного захисту інформації. Принципи шифрування даних на основі використання хеш-функцій. Розробка програмних компонентів інформаційних систем криптографічного захисту інформації. Види криптографічних алгоритмів.

    курсовая работа [2,7 M], добавлен 23.01.2012

  • Робота з майстром функцій та діаграм. Обробка електронних таблиць. Визначення бази даних та їх типи. Бази даних в MS Excel. Використання автофільтру та розширеного фільтру. Основні операції, які застосовують для роботи з аркушами робочої книги Еxcel.

    курсовая работа [1,3 M], добавлен 18.05.2013

  • Розробка програми в візуальному середовищі С++. Визначення значення функцій в середовищі Builder мовою програмування С++. Обчислення елементів квадратної матриці згідно заданного алгоритму. Бібліотека візуальних компонентів і середовище програмування.

    курсовая работа [451,5 K], добавлен 15.01.2012

  • Розробка автоматизованої системи навчання. Операції над простими типами в середовищі Delphі. Прості типи даних. Арифметичні операції і операції відношення. Виконання логічних операцій. Черговість виконання операцій. Строкові операції отримання адреси.

    курсовая работа [2,4 M], добавлен 04.05.2013

  • Область використання автоматизованої інформаційно-довідкової системи, її структура, визначення функцій, вибір програмних та технічних засобів. Порядок створення файлу та таблиць баз даних, міжтабличних зв’язків. форм, запитів. Аналіз даних у СУБД Excel.

    практическая работа [672,1 K], добавлен 09.09.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.