powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Найти Handle в системе
9 сообщений из 9, страница 1 из 1
Найти Handle в системе
    #38679239
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Опишу свою задачу:
Есть железка. При подключении она возвращает handle(типа IntPtr). Если работу программы завершить некорректно, не освободить ресурсы железки, то при повторной попытке подключиться она уже реагировать не будет.
Есть мысль, что этот handle остается в системе. И железка висит.

Ну и вопрос. Можно ли, зная этот указатель на железку, как-то найти ее в системе?


И параллельный вопрос. Может ли винда очищать временно неиспользуемые хендлы? А то бывало, что железка работает, потом какое-то время(несколько минут) не используется, после чего уже не реагирует.

Почему хендлы? Потому что вся работа с железкой ведется через этот указатель, полученный при подключении. (все через SDK от производителя).
...
Рейтинг: 0 / 0
Найти Handle в системе
    #38679252
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
железка handle не возвращает.

Описано поведение кривого драйвера и SDK
...
Рейтинг: 0 / 0
Найти Handle в системе
    #38679277
bazile
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon, винда автоматически освобождает все дескрипторы открытые процессом при его завершении так что значение handle будет бесполезным после этого. Я бы постарался сначала решить эту проблему на уровне программы. Попробуй обернуть дескриптор устройства в SafeHandle , если ты еще этого не делаешь.

Если не поможет, то можно вынести код общения с устройством в отдельный процесс и общаться с ним через WCF.

В качестве бредовой идеи можно попробовать перезапускать драйвер устройства. На stackoverflow есть пример - How can I manually load/unload a driver in Windows Vista?
...
Рейтинг: 0 / 0
Найти Handle в системе
    #38679324
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

ок. Возвращает не железка, а метод подключения к железки, который работает с драйвером, а возможно, со службой, которая работает с драйвером.
Про кривое - не спорю. Но что есть, то есть... Китайцы ж :)


bazile,
про SafeHandler посмотрю. Но все же... получается, что на каком-то уровне железка думает, что с ней работают, а на самом деле уже нет.

Применение WCF ничего не поменяет. Вся логика работы с железкой туда перетечет. Но так же и дальше будет глюкать...
А до уровня драйверов спускаться бы не хотелось.. Проще перетыкать сканер в порт :)
...
Рейтинг: 0 / 0
Найти Handle в системе
    #38679396
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon Проще перетыкать сканер в порт :)
уже чуть больше информации.
Кстати, глючить может и сама железка
...
Рейтинг: 0 / 0
Найти Handle в системе
    #38679405
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,

скорее дрова.
Сами железки и разных партий пробовали. Одна фигня.

Помимо физического переподключения в порт помогает удаление и повторная установка устройства. Ну собственно что и предложил Базиль.

Короче где-то висят какие-то ресурсы железки в системе... И вот кроме как хендла, полученного при первом подключении, больше ничего нет. Но видимо хендл не влияет на это.
...
Рейтинг: 0 / 0
Найти Handle в системе
    #38679452
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sky Dragon,
хендл, может и не удаляться при закрытии приложения, если ядро делит его с другим процессом.
...
Рейтинг: 0 / 0
Найти Handle в системе
    #38679455
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имхо надо читать более подробно доки, есть ли они?
...
Рейтинг: 0 / 0
Найти Handle в системе
    #38679595
Sky Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где-то в степи,

Вот и я об этом думаю. Но каким процессом, это уже вопрос... Может он там сам свой создает..

Доки есть. Но там чисто мануал по SDK. Ничего такого
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Найти Handle в системе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]