|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » отключение устройств |
|
отключение устройств
|
Ветеран Сообщения: 508 |
Профиль | Отправить PM | Цитировать
подскажите пожалуйста, каким методом можно решить такую задачу : написать программу которая отключала бы USB, Сd-Rom и Floppy. (т.е. отключение флопика, дисковода и портов USB). меня интересует алгоритм написания данной программы.
мои идеи изменять параметры реестра которые отвечают за отключение устройств в диспетчере устройств. |
|
Отправлено: 18:29, 25-06-2007 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать chek
Я думаю,что надо смотреть в сторону функции DeviceIoControl и её разнообразных IOCTL-кодов.Данная функция является в некотором роде посредником между пользовательскими программи и драйверами режима ядра.В частности имеется ввиду драйвер того же CD-ROM'а. В общем,смотри тут и потом вперёд на MSDN. |
------- Отправлено: 22:52, 25-06-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать chek
В ресурс-ките есть утилита DevCon, которая в числе прочего может отключать/включать устройства... а в DDK есть ее исходник, если есть желание поковырять то вот он: http://forum.oszone.net/attachment.p...achmentid=4080 ADD: по поводу ключей реестра вот линк на ADM-файл политики который включает/выключает соответствующие драйверы установкой параметра "Start"=4 , но применение требует перезагрузки: http://support.microsoft.com/kb/555324/en-us HKLM\SYSTEM\CurrentControlSet\Services\UsbStor HKLM\SYSTEM\CurrentControlSet\Services\Cdrom HKLM\SYSTEM\CurrentControlSet\Services\Flpydisk |
Последний раз редактировалось amel27, 26-06-2007 в 04:35. Отправлено: 04:23, 26-06-2007 | #3 |
Ветеран Сообщения: 508
|
Профиль | Отправить PM | Цитировать amel27
большое спасибо. а вы можете написать часть программы на си билдере которая бы и изменяла этот параметр реестр при нажатии на кнопку?? |
Последний раз редактировалось chek, 26-06-2007 в 13:38. Отправлено: 13:30, 26-06-2007 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать chek
к сожалению нет - я не программер.. Гугль в помощь |
|
Отправлено: 13:03, 27-06-2007 | #5 |
Ветеран Сообщения: 508
|
Профиль | Отправить PM | Цитировать amel27
ну и на том спасибо, будем искать... |
Отправлено: 23:11, 27-06-2007 | #6 |
Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать chek
Что искать-то??Вы программист или нет...или,по-крайней мере,хотите им стать...? Вот основной кусок кода на ассемблере.Думаю,суть сможете уловить: .data szRegCdromPath db "SYSTEM\CurrentControlSet\Services\Cdrom",0 szStartParam db "Start",0 .code ; ################## start ########################## start proc LOCAL hKey:HANDLE LOCAL QueryData:DWORD LOCAL WriteData:DWORD LOCAL cbData:DWORD LOCAL acBuffer[64]:CHAR ; /* Открываем нужный ключ реестра */ lea eax, hKey push eax push KEY_ALL_ACCESS push 0 push offset szRegCdromPath push HKEY_LOCAL_MACHINE call RegOpenKeyEx test eax, eax ; ERROR_SUCCESS == 0 jnz @@failed_open_reg ; /* Мы хотим считать четыре байта (DWORD) */ mov cbData, sizeof DWORD ; /* Проверяем оригинальный параметр и его значение (опционально) */ lea eax, cbData push eax lea eax, QueryData push eax push NULL push NULL push offset szStartParam push hKey call RegQueryValueEx test eax, eax jnz @@failed_query_reg cmp cbData, sizeof DWORD jnz @@failed_query_reg ; /* Заносим в буфер значение 0х4 */ mov WriteData, SERVICE_DISABLED ; /* Устанавливаем новое значение параметра "Start" */ push cbData lea eax, WriteData push eax push REG_DWORD push 0 push offset szStartParam push hKey call RegSetValueEx test eax, eax jnz @@failed_set_reg ... Параметр этого ключа,называемый "Start",характеризует то,как этот драйвер запускается.В данном случае нас интересуют два значения: SERVICE_SYSTEM_START 0x00000001 Запускается при на ранних стадиях инициализации системы(значение по-умолчанию) SERVICE_DISABLED 0x00000004 Отключение сервиса.Драйвер не может быть запущен. |
------- Отправлено: 15:27, 28-06-2007 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Изменить названия устройств в Диспетчере устройств | DIMM2005 | Microsoft Windows 2000/XP | 8 | 31-03-2018 22:02 | |
Утилиты - [addon] USBDeview - просмотр и отключение USB устройств | Stanner | Наборы обновлений для Windows XP/2003/Windows 7 | 38 | 29-08-2008 18:24 | |
Выборочное отключение устройств USB. | babki | Microsoft Windows NT/2000/2003 | 7 | 04-04-2007 18:34 | |
Отключение всех USB-устройств кроме принтеров | Kirill NN | Microsoft Windows NT/2000/2003 | 14 | 11-10-2006 18:30 | |
отключение устройств в компе | chek | Программирование и базы данных | 6 | 18-05-2006 10:31 |
|