Много статей не имеет срока устаревания. Есть смысл смотреть и 2011, и даже 2008 год. Политика сайта: написать статью, а потом обновлять ее много лет.
Открыта карта ВТБ для материальной поддержки сайта: 4893470220568296.

Рекламодателям! Перестаньте спамить мне на почту с предложениями о размещении рекламы на этом сайте. Я никогда спамером/рекламщиком не был и не буду!
" title="Написать письмо">Написать письмо

Статистика

Пользователи : 1
Статьи : 1247
Просмотры материалов : 4585559
 
Программное безопасное извлечение USB (06.10.2013). Печать E-mail
2013 - Октябрь
06.10.2013 13:25
Save & Share

Написал модуль на VB6, используя функции API: безопасное извлечение флешки (с физическим отключением питания, естественно). Публикую код по той причине, что если пытаться впервые решить такую задачу - человек будет терять время. Сначала будет изучать функции API CreateFile и DeviceIoControl с их особенностями, затем его занесет в дебри функции Cm_Request_Device_Eject (а там параметров и зависимостей...). И все это не только не даст результатов положительных, но и породит ложноположительные (когда флешка исчезает, а питание с нее не снимается).

Модуль USB.bas я разместил в полезных исходниках. Прекрасно работает в Windows XP x64 и Windows XP. В Windows 7 x64 код не работает из-за того, что функция CM_Get_DevNode_Status возвращает ошибку 5 (в файле cfgmgr32.h значится как "CR_INVALID_DEVNODE"; при тех же входных параметрах, с которыми в XP все успешно работает).

Обновлено ( 10.10.2013 20:05 )
 
 

Последние новости


©2008-2019. All Rights Reserved. Разработчик - " title="Сергей Белов">Сергей Белов. Материалы сайта предоставляются по принципу "как есть". Автор не несет никакой ответственности и не гарантирует отсутствие неправильных сведений и ошибок. Вся ответственность за использование материалов лежит полностью на читателях. Размещение материалов данного сайта на иных сайтах запрещено без указания активной ссылки на данный сайт-первоисточник (ГК РФ: ст.1259 п.1 + ст.1274 п.1-3).