eXeL@B —› Программирование —› проблема с DefineDosDevice |
Посл.ответ | Сообщение |
|
Создано: 17 октября 2009 17:44 · Личное сообщение · #1 Может кто сталкивался с этим... Короче удаляю устройство таким путем - Code:
Причем Reserv - это глобальный буфер куда сохраняется дос имя устройства... За тем я возвращаю устройство обратно таким способом - Code:
Все встает на место... Устройство становиться доступно... НО все это я проделываю с флешкой... И после извлечения ее ... а за тем подключения ее обратно... вылезает такое сообщение - Вопрос.... если этот метод такой косячный, существует ли иной способ скрытия устройства..??? Поделитесь пожалста ... ----- aLL rIGHTS rEVERSED! |
|
Создано: 18 октября 2009 08:53 · Личное сообщение · #2 |
|
Создано: 18 октября 2009 10:28 · Поправил: Clerk · Личное сообщение · #3 |
|
Создано: 18 октября 2009 10:58 · Поправил: DaRKSiDE · Личное сообщение · #4 |
|
Создано: 18 октября 2009 12:40 · Личное сообщение · #5 |
|
Создано: 21 октября 2009 08:36 · Поправил: DaRKSiDE · Личное сообщение · #6 |
|
Создано: 21 октября 2009 09:00 · Личное сообщение · #7 |
|
Создано: 22 октября 2009 07:01 · Поправил: DaRKSiDE · Личное сообщение · #8 Clerk Бесполезно... перезапуск проводника ни к чему хорошему не привел.. все осталось как и было... Кстати... заметил такую закономерность...Если я удаляю дос имя и затем произвожу выброс флешки CM_Request_Device_Eject то повторное подключение проходит корректно, т.е. ошибка не вылазиет... А вот если была последовательность... удаление дос имени-> присвоение дос имени... (причем после этого можно работать с флешкой до первого реконекта) то после выброса и подключения заново имеет место неверная ссылка... Причем после возникновения данного косяка если опять повторить последовательность комманд - Code:
то флешка не удаляется а становиться доступной... т.е. касяк с неверной ссылкой правиться... но это не есть гуд.... т.е. как я понял косяк кроиться именно в назначении дос имени Code:
Т.е. по логике вещей видимо нужна какая-то предварительная операция с дос именем чтоли? Но какая?! Х.з.... Может ты знаешь? Подскажи, плиз.... ----- aLL rIGHTS rEVERSED! |
|
Создано: 22 октября 2009 14:39 · Личное сообщение · #9 DaRKSiDE книженция www.megaupload.com/?d=OS4I3UN0 в архиве 2 книги , автор тот же но там толи издания разные толи что то исправлено, и в одном исходники по размеру больше. Там 2 комплекта... прочитай первые главы ..там есть этапы индентификации устройства, этот порядок важен , также стоит прочитать про освобождение буфера информации о усб. А вообще начни с главы 11 , пролистай все сначала , все что тебя интересует там описано, может упустил мелочь. ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 23 октября 2009 07:28 · Личное сообщение · #10 |
|
Создано: 24 октября 2009 12:47 · Личное сообщение · #11 DaRKSiDE пишет: mak Того что нужно.. там нет... к сожалению... Вобщем-то проблема в том, что после переопределения DOS имени девайса (удаление и назначение этого же имени точке монтирования) функция CM_Request_Device_Eject не удаляет переопределенное имя девайса.. и из-за этого 2 дос имени (старое и новое) назначены одной точке монтирования... и старое имя стоит первым... и естественно указывает в NULL... т.к. у устройства после очередного подключения определяется системой новое дос имя... Так что касяк именно в - Code:
Почему-то система игнорирует при удалении устройства старое дос имя и не удаляет его вместе с девайсом... Может всетаки ктото знает как решить эту проблему??? ----- aLL rIGHTS rEVERSED! |
|
Создано: 25 октября 2009 12:27 · Личное сообщение · #12 |
|
Создано: 25 октября 2009 14:13 · Личное сообщение · #13 |
|
Создано: 09 ноября 2009 10:24 · Личное сообщение · #14 В общем-то разобрался я с данной проблемой. Все оказалось до смешного банально... Для того чтобы DefineDosDevice создавал линк в глобале... необходимо чтобы обращение к DefineDosDevice происходило из контекста LocalSystem ... проще говоря из тела к примеру сервиса или проги запущенной в контексте системной службы (к примеру lsass).. В этом случае ссылка пишется непосредственно в глобал а не в сессию... ----- aLL rIGHTS rEVERSED! |
eXeL@B —› Программирование —› проблема с DefineDosDevice |