USB windows xp окончательные проблемы с доступом к USB - PullRequest
0 голосов
/ 28 мая 2010

Я в основном понимаю вас, C ++, пожалуйста, не отвлекайтесь, потому что я пишу на Delphi.

У меня есть стабильный метод листинга USB, который обращается ко всем моим USB-устройствам Я получаю devicepath, и эта структура:

TSPDevInfoData = packed record
  Size: DWORD;
  ClassGuid: TGUID;
  DevInst: DWORD; // DEVINST handle
  Reserved: DWord;
end;

Я успешно получаю ProductID и VenderID из моего DevicePath Перечисляет все USB-устройства, подключенные к компьютеру одновременно Это позволяет мне стабильно получать доступ к данным реестра для каждого устройства.

Чего мне не хватает, так это маленького направления

  1. Может ли дружественное имя быть записано в подключенные микросхемы USB микропрограммным обеспечением? (Я думаю об этом, чтобы идентифицировать устройство еще дальше, или это поможет идентифицировать устройства массовой передачи данных, такие как карты памяти и камеры) *

  2. Могу ли я использовать SPDRP_REMOVAL_POLICY_OVERRIDE, чтобы как-то сбросить эти политики Что еще я могу сделать с деталями реестра.

  3. Определение, когда кто-то отключает устройство от сети, используемое программой (в стандарте Windows XP) Я использовал документированное событие Windows, которое не отвечало. Могу ли я прочитать значение реестра, чтобы определить, все еще ли оно подключено?

  4. с использованием CreateFileA (DevicePath) для отправки и получения данных Я читал, когда кто-то отключает в середине передачи данных его трудные ресурсы очистки.

  5. что IoCreateDevice может сделать для меня и как его использовать для этой задачи

Эта двусторонняя точка состояния соединения и ситуации блокировки системы очень важна. Кто-нибудь читал что-нибудь об этой теме в последнее время?

Мои цели состоят в том, чтобы 1. список подключенных USB-устройств

  1. идентифицирует в разработке Micro Controller из всего остального

  2. стабильно и быстро отправлять и получать данные в пределах контроллера

  3. Нет блокировки передачи данных

Примечание. Я не пользуюсь никакими пакетами обновлений

Я понимаю, что все USB есть в ANSI, когда Windows XP не, а .Net все о ANSI (что за пустая трата памяти)

Я планирую продолжить этот проект в .net позже в качестве дополнения.

MSDN дает мне структуры и функции и что должно связывать с тем, что хорошо, но мало что сказать к тому, к чему они привыкли.

То, что доступно на моем языке, Delphi слишком дорого, так как требует значительного снижения цен.

1 Ответ

0 голосов
/ 28 мая 2010

Я нашел реестр DEVICE_INSTALL_STATE с: -

InstallStateInstalled = 0, InstallStateNeedsReinstall = 1, InstallStateFailedInstall = 2, InstallStateFinishInstall = 3

Я задаю вопрос о том, как быстро обновляется ответ, и если это лучший способ сделать это

Лекс Дин

...