Программное извлечение флеш-диска
Автор: Evgeny Vasilev • Декабрь 22, 2018 • Практическая работа • 1,693 Слов (7 Страниц) • 490 Просмотры
ПРАКТИЧЕСКОЕ ЗАНЯТИЕ N2
Программное извлечение флеш-диска
1. Цель работы
Изучение интерфейса USB, используемое в ИС для обмена данными между периферийными устройствами и ЭВМ. Практическое овладение навыками составления программ, работающих с USB-накопителями.
2. Рекомендуемая литература
Агуров П.В. Практика программирования USB. – СПб.: БХВ- Петербург, 2006. с. 69...73, 332...341, 368...374, 566...567.
SetupAPI Reference [Электронный документ]. – Режим доступа: http://msdn.microsoft.com/en-us/library/dd445255.aspx . – 5.11.2009. GMax. Безопасное извлечение USB-устройств [Электронный
документ] / GMax. – Режим доступа: http://wasm.ru/article.php?article=usb_eject . – 5.11.2009.
Программное извлечение USB-диска [Электронный документ]. – Режим доступа:
http://superadm.net/index.php?name=pages&op=view&id=126 . – 5.11.2009. Аблязов Р. Работа с устройствами в Windows [Электронный документ] / Аблязов Р. – Режим доступа: http://pblog.ru/?p=105 . –
5.11.2009.
3. Подготовка к работе
3.1. Изучить методические указания и рекомендованную литературу. 3.2. Подготовить ответы на контрольные вопросы. 3.3. Подготовить флеш-диск с интерфейсом USB.
4. Контрольные вопросы
4.1. Логическая и физическая архитектура USB? 4.2. Что является инициатором транзакции USB? 4.3. Почему не желательно вынимать USB-накопитель из разъёма без использования безопасного отключения? 4.4. Какой формат имеет PnP-идентификатор USB-устройств? 4.5. Какой формат имеет идентификатор экземпляра устройства USB- накопителя? 4.6. Что делает и какой формат имеет функция SetupDiGetDeviceRegistryProperty? 4.7. Что делает и какой формат имеет функция CM_Get_Device_ID?
   
2
4.8. Какие функции из SetupAPI.dll используются для нахождения и отключения устройства? 4.9. Как определить строковый идентификатор производителя и продукта?
5. Задание на выполнение работы
5.1. Используя среду программирования Free Pascal разработать программу, останавливающую только Вашу флешку для безопасного извлечения её из разъёма.
Программа может быть выполнена в консольном виде или с графическим пользовательским интерфейсом.
5.2. Подготовить отчёт и отчитаться о проделанной работе преподавателю.
6. Отчёт должен содержать:
6.1 Титульный лист (с названием ВУЗа, кафедры, практического занятия, а также фамилию И.О. студента, подготовившего отчёт).
6.2 Цель работы. 6.3 Графический алгоритм программы с краткими пояснениями. 6.4 Полный листинг программы с комментариями.
7. Общие сведения
При работе с USB-накопителями информации необходимо правильно извлекать эти устройства из системы. В операционных системах семейства Windows для этого имеется функция «Безопасное извлечение устройства», которую можно вызвать командой
rundll32.exe shell32.dll, Control_RunDLL hotplug.dll
Однако данную операцию можно выполнить и программным способом. Существует два метода программного извлечения устройства. Первый метод использует функции библиотеки SetupAPI.dll. Если устройство не готово для извлечения в данный момент, то выдаётся соответствующая ошибка или сообщение.
Второй метод использует функции прямого обращения к драйверу. В отличие от первого метода, он может извлечь устройство, даже если оно не готово, но при этом операционная система не уведомляется об отключении диска, что может вызвать ошибку при обращении к диску.
В приложении А приведён листинг программы, которая позволяет безопасно извлекать из системы первый попавшийся USB-накопитель. В данной программе проверяется PnP-идентификатор экземпляра устройства. Однако кроме проверки PnP-идентификатора есть и другие
способы нахождения конкретного устройства, например по строке описания этого устройства или идентификатору оборудования.
...