Printable Version of Topic
Click here to view this topic in its original format |
Forums > Глюкодром > Программисты - нужна помощь!, Работа с драйвером от USB девайса |
Posted by: VxWorks on 20-01-2006, 17:36 |
ДАНО Устройство (по USB интерфейсу) подключено к компу 24х7. Таких устройств в системе 4. Периодически, так происходит, что Винда забывает о наличии одного из них в системе. Производитель девайса кроет матом комп, винду, Билла Гейтса и господа Бога. Но сам он, естественно, не виноват ни в чем. Документации на драйвер НЕТ, но я знаю адреса, по которым он общается с девайсом, так что послать обычный запрос и обработать ответ, теоретически можно. Устройства к компу подключены всегда и никогда от него отключены не будут, разве что физически помрут, что редкость и в данной задаче не рассматривается. ТРЕБУЕТСЯ Определить в Винде - живы ли ВСЕ девайсы. Если нет, симулировать отключение-включение, чтобы Винда сделала enumeration (хз как по русски). Сделать это надо мне, но я в Винде ни в зуб ногой. Из девелоперского софта - только MS VS Express. Программа, которая будет такое делать, не должна сидеть резидентом - отработала и хватит. То есть, действовать по принципу "когда понадобится, вас позовут". Консольная аппликация, есс-но. |
Posted by: mts on 20-01-2006, 18:04 |
Не програмное решение, но всё же. Попробуй запретить винде возможность отключения питания на USB "для экономии электроэнергии" ![]() |
Posted by: VxWorks on 20-01-2006, 18:20 |
Это я уже делал - не действует ![]() |
Posted by: inzerus on 20-01-2006, 19:11 |
Я сам не пробовал, но есть такая программка - DevCon (описание (http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q311272, сама программа (http://download.microsoft.com/download/1/1/f/11f7dd10-272d-4cd2-896f-9ce67f3e0240/devcon.exe). Судя по описанию, вполне подойдет для опроса/reset-a USB устройств. И к тому же, консольная. Другая идея - а что если просто из командной строки делать "dir U:" (или как там у вас в системе устройство называется) - может это реактивирует USB устройства? |
Posted by: VxWorks on 20-01-2006, 20:32 |
Под адресом имелось в виду, что я знаю физический адрес (типа 0x8005AEAE) устройства. Как на такое можно сделать Dir? ![]() |
Posted by: inzerus on 20-01-2006, 22:50 | ||
![]() А как насчет DevCon - подойдет? |
Posted by: VxWorks on 20-01-2006, 23:29 |
Посмотрю чуть попозже ![]() ![]() |
Posted by: UGIN on 20-01-2006, 23:29 | ||
Если такое поможет - брошу файл или линк.. Взято - отсюда. (http://lpt.usbfireinfo.com/Information/#Features |
Posted by: Set on 20-01-2006, 23:46 |
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q259697 (http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q259697 |
Posted by: VxWorks on 21-01-2006, 00:16 |
Спасибо! В понедельник наложу свои лапы на систему, посмотрим, что из этого получится. |
Posted by: obaldin on 21-01-2006, 01:45 | ||
|
Posted by: VxWorks on 21-01-2006, 03:28 |
Сказать-то я знаю, но при определенных событиях, Винда девайс просто теряет ![]() |
Posted by: Michael2000 on 21-01-2006, 05:14 |
Железо надо прямое покупать...и БИОС обновлять... (не обижайся,ворчу...старею). |
Posted by: FiL on 21-01-2006, 08:03 |
странно, что программисты (а ведь такие явно есть на нетлабе) не отзываются. Всё админы/техники. P.S. Если кого обидел по незнанию, то порстите. Не со зла. |
Posted by: admik on 21-01-2006, 08:57 |
FiL пятница, вечер/ночь. какое тут юсб |
Posted by: obaldin on 21-01-2006, 13:24 |
FiL, область уж больно специфическая. Но и то, вроде, в основном рассказали. Самое близкое к теме, что я когда-то делал, была просто задача пречислить все USB-устройства, отобрать из них нужные по vendor id и вызвать на них парочку IOCTL'ов. Есдинственная хитрость была та, что среди USB-устройств могут быть USB-контроллеры и тогда нужно рекурсивно смотреть, что висит на них. |
Posted by: VxWorks on 21-01-2006, 13:36 | ||
|
Posted by: Michael2000 on 21-01-2006, 15:09 | ||
А народ до понедельника глядишь отзовется... |
Posted by: inzerus on 21-01-2006, 16:28 | ||
![]() |
Posted by: Set on 25-01-2006, 00:59 |
Не успел Воркс... повязали ребят из MI-5 вместе со злополучным камнем... ![]() |
Posted by: VxWorks on 25-01-2006, 01:18 | ||
Завтра поеду к этому клиенту, разбираться, может, он на мое начальство наедет и мне дадут заняться хоть чем-нибудь интересным... |
Posted by: obaldin on 25-01-2006, 02:25 | ||
|
Posted by: VxWorks on 25-01-2006, 02:46 | ||||
Честное слово, я бы лучше с USB повозился... |
Posted by: obaldin on 25-01-2006, 02:48 | ||
![]() |
Posted by: Set on 25-01-2006, 23:42 |
Это точно, там вроде как одной API функцией весь процесс запускается. ![]() |
Posted by: obaldin on 25-01-2006, 23:47 |
Процесс чего? |