Посл.ответ |
Сообщение |
 Ранг: 462.8 (мудрец), 468thx Активность: 0.28↘0 Статус: Участник Only One!
|
Создано: 26 сентября 2009 21:36 · Личное сообщение · #1
В общем проблема такова... Нужно как-то получить битовую маску буквы диска подключенного флеша... WM_DEVICECHANGE не предлогать... ибо букву диска надо получить при запуске проги и когда флешка уже была воткнута до запуска программы.. Если программа работает и флешка втыкается - здесь проблем нет... Но если флешка была уже воткнута.. и прога запуженна после того как... Как в этом случае получить эту битовую маску? Поделитесь инфой плиз... очень надо .. Заранее большое спасибо!
----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: |
|
 Ранг: 462.8 (мудрец), 468thx Активность: 0.28↘0 Статус: Участник Only One!
|
Создано: 26 сентября 2009 21:43 · Личное сообщение · #2
Собственно привожу код который ищет флешь... Получает ID и название...
----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: |
Ранг: 23.2 (новичок), 8thx Активность: 0.02↘0 Статус: Участник
|
Создано: 26 сентября 2009 22:01 · Личное сообщение · #3
юзай SetupDiGetDeviceInterfaceDetail по SP_DEVICE_INTERFACE_DETAIL_DATA.DevicePath найдешь Native-имя диска
| Сообщение посчитали полезным: |
 Ранг: 673.3 (! !), 400thx Активность: 0.4↘0.31 Статус: Участник CyberMonk
|
Создано: 26 сентября 2009 22:31 · Личное сообщение · #4 ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube | Сообщение посчитали полезным: |
 Ранг: 462.8 (мудрец), 468thx Активность: 0.28↘0 Статус: Участник Only One!
|
Создано: 27 сентября 2009 08:50 · Личное сообщение · #5
Нифига не выходит...  SetupDiEnumDeviceInterfaces постоянно возвращает ERROR_NO_MORE_ITEMS Может я не тот GUID использую? Для получения ID устройства я использую - GUID_DEVCLASS_DISKDRIVE {4D36E967-E325-11CE-BFC1-08002BE10318} Для получения имя диска нужен этот же GUID или нет? Подскажите плиз ктонить....
----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: |
Ранг: 23.2 (новичок), 8thx Активность: 0.02↘0 Статус: Участник
|
Создано: 27 сентября 2009 09:57 · Личное сообщение · #6
Для SetupDiEnumDeviceInterfaces я использовал
p.s. посмотри исходник на wasm
| Сообщение посчитали полезным: |
Ранг: 512.7 (!), 360thx Активность: 0.27↘0.03 Статус: Модератор
|
Создано: 27 сентября 2009 12:29 · Личное сообщение · #7
пример отсюда нумерует оК (но код там индуский  ) www.codeguru.com/forum/showthread.php?t=331907 см. пост от March 11th, 2005, 12:43 PM
| Сообщение посчитали полезным: |
 Ранг: 462.8 (мудрец), 468thx Активность: 0.28↘0 Статус: Участник Only One!
|
Создано: 27 сентября 2009 14:10 · Личное сообщение · #8
GMaxНу вроде заработало  Подскажи теперь как из дос имени девайса \?\USBSTOR#Disk&Ven_Kingston&Prod_DataTraveler_2.0&Rev_PMAP#5B6B06809113&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b} получить имя логического диска? Пожалста...
----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: |
Ранг: 23.2 (новичок), 8thx Активность: 0.02↘0 Статус: Участник
|
Создано: 27 сентября 2009 14:26 · Личное сообщение · #9
Думаю есть несколько способов я юзал довольно корявый: открывал диск CreateFile функцией DeviceIoControl и кодом IOCTL_STORAGE_GET_DEVICE_NUMBER получал номер диска затем открывал каждый диск системы и делал то же самое как только номера совпадали значит диск найден если найдешь лучший путь дай знать
| Сообщение посчитали полезным: |
 Ранг: 462.8 (мудрец), 468thx Активность: 0.28↘0 Статус: Участник Only One!
|
Создано: 28 сентября 2009 08:41 · Личное сообщение · #10
GMax пишет: Думаю есть несколько способов Буду искать... найду поделюсь обязательно... У меня такой еще вопрос - как надо преобразовать полученное дос имя, чтобы CreateFile скушал его? А не матерился что файл не найден... \?\USBSTOR#Disk&Ven_Kingston&Prod_DataTraveler_2.0&Rev_PMAP#5B6B068091 13&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}Что здесь надо изменить?
----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: |
Ранг: 481.4 (мудрец), 109thx Активность: 0.18↘0 Статус: Участник Тот самый :)
|
Создано: 28 сентября 2009 09:58 · Поправил: Hexxx · Личное сообщение · #11
В сорцах винды 2к есть мега функция которая букву для флэшки из имени USB находит. Через функции работы с volume. Естественно как называется я не помню
----- Реверсивная инженерия - написание кода идентичного натуральному | Сообщение посчитали полезным: |
 Ранг: 462.8 (мудрец), 468thx Активность: 0.28↘0 Статус: Участник Only One!
|
Создано: 28 сентября 2009 12:09 · Поправил: DaRKSiDE · Личное сообщение · #12
Hexxx пишет: Естественно как называется я не помню Ну вот... опять облом
----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: |
Ранг: 23.2 (новичок), 8thx Активность: 0.02↘0 Статус: Участник
|
Создано: 28 сентября 2009 18:46 · Личное сообщение · #13
DaRKSiDE пишет: У меня такой еще вопрос - как надо преобразовать полученное дос имя, чтобы CreateFile скушал его? у меня два обратных слеша вначале имени, кушает и не давится а что мешает посмотреть отладчиком, например в Dr.USB?
| Сообщение посчитали полезным: |
 Ранг: 462.8 (мудрец), 468thx Активность: 0.28↘0 Статус: Участник Only One!
|
Создано: 28 сентября 2009 18:53 · Личное сообщение · #14
GMax пишет: а что мешает посмотреть отладчиком, например в Dr.USB? Посмотрел  Пипец... старею....старею.... сделать такую опечатку... Короче в параметрах CreateFile вместо FILE_ATTRIBUTE_NORMAL = 80h, я воткнул NORMAL = 0... И поэтому не открывался диск...
----- aLL rIGHTS rEVERSED! | Сообщение посчитали полезным: |