2010-05-28 5 views
0

Je comprends fondamentalement les gens C++, S'il vous plaît ne vous laissez pas distrait parce que j'écris en Delphi.USB Windows XP derniers problèmes d'accès USB

J'ai une méthode USB stable Listing qui accède à tous mes périphériques USB -je obtenir le devicepath, et cette structure:

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

Je reçois mes ProductID et VenderID avec succès de mes DevicePath la liste de tous les périphériques USB connectés à l'ordinateur à la fois Cela me permet d'accéder aux données du registre à chaque périphérique de manière stable.

Ce que je manque un peu direction

  1. nom convivial est capable d'être écrit à l'intérieur des puces Micro USB connectés par le programmeur du firmware? (Je pense à ce pour identifier l'appareil encore plus loin, ou est-ce pour aider à identifier les dispositifs de transfert de données en vrac comme des bâtons de mémoire et de l'appareil photo)

  2. Puis-je utiliser SPDRP_REMOVAL_POLICY_OVERRIDE une certaine façon réinitialiser ces politiques Que puis-je faire avec les détails du registre.

  3. Identifier quand quelqu'un débranche un périphérique Le programme utilise (dans Windows XP standard) J'ai utilisé un événement Windows documenté qui n'a pas répondu. Puis-je lire une valeur de registre pour identifier si elle est toujours connectée? En utilisant CreateFileA (DevicePath) pour envoyer et recevoir des données J'ai lu quand quelqu'un débranche au milieu d'un transfert de données ses ressources de compensation difficiles.

  4. ce qui peut IoCreateDevice faire pour moi et comment peut-on utiliser pour cette tâche

Ce point dans les deux sens de l'état de la connexion et le verrouillage du système en place des situations est très préoccupante. Quelqu'un at-il lu quelque chose à ce sujet récemment?

Mes objectifs sont à 1. liste périphériques USB connectés

  1. identifier un dans le développement micro-contrôleur de tout le reste

  2. envoyer et recevoir des données dans une étable et de manière rapide aux limites du contrôleur

  3. Pas de blocage jusqu'à transfert de données est

Remarque Je ne suis pas à l'aide de Service Packs

Je comprends tout USB est en ANSI lorsque Windows XP est pas et .Net est tout au sujet de la norme ANSI (quelle perte de mémoire)

Je prévois continuer ce projet dans un .net à une date ultérieure comme un ajout.MSDN me donne des structures et des fonctions et ce qui devrait correspondre à ce qui va bien, mais dire peu à quoi ils sont habitués.

Ce qui est disponible dans ma langue Delphi est beaucoup trop cher qu'il a besoin d'une baisse importante des prix.

+0

Il semble que vous posez fondamentalement 8 questions i n 1 ici. Je pense que vous devriez le diviser en plusieurs questions. Pour chaque question, montrez-nous ce que vous avez essayé et expliquez pourquoi cela ne fonctionne pas pour vous. Je pourrais probablement vous aider avec beaucoup de choses, mais pour l'instant mon conseil est d'en savoir plus sur SetupAPI et WinUSB: http://msdn.microsoft.com/en-us/library/ff550897(v=VS.85) .aspx http://msdn.microsoft.com/fr-fr/library/ff540196.aspx –

Répondre

0

Je trouve le registre DEVICE_INSTALL_STATE avec: -

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

Je pose la question de la vitesse est la réponse mise à jour et si leur est un meilleur moyen de le faire

Lex Dean