Reset USB device..

francoisok Messages postés 2 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 7 février 2007 - 13 févr. 2006 à 11:28
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 - 14 févr. 2006 à 07:52
Bonjour a tous!

J'ai un USB device qui apres ecriture dans l'identifiant a besoin d'etre debranche et rebranche pour que les modifications soient prises en compte.

Je recherche le moyen de faire une "Reenumeration of a Device Tree From an Application" seulement j'ai le code qu'en C++ a cette

adresse:http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q259697
J'aimerai pouvoir l'ecrire en delphi.

Si quelqu'un a une solution j'apprecierai fortement!

Amities a tous

Merci

3 réponses

cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
13 févr. 2006 à 17:09
Salut

La DLL où se trouve cette fonction (CfgMgr32.dll) n'étant pas interfacée, il faut lui fournir une unité d'interface CfgMgr32.pas
Tu trouveras tout ça ici :
GfgMgr sans oublier de charger aussi le Project JEDI API Library




Après la fonction en C peut se traduire par :

function ScanForHardwareChanges: boolean;




var




dev: DEVINST;




status: CONFIGRET;




begin






status := CM_Locate_DevNode(dev, '', CM_LOCATE_DEVNODE_NORMAL);








if (status <> CR_SUCCESS) then




begin




result : = FALSE;




exit;




end;








status := CM_Reenumerate_DevNode(dev, 0);








if (status <> CR_SUCCESS) then




begin




result : = FALSE;




exit;




end;




Result := TRUE;




end ;






Il ne faut pas oublier la ligne :


LoadConfigManagerApi; // chargement des DLL, à appeler au moins une fois





en début de programme pour charger les DLL




Bon courage

Ken@vo

<hr size ="2" width="100%">Code, Code, Codec !

[%3C/body ]
0
DeltaFX Messages postés 449 Date d'inscription lundi 19 avril 2004 Statut Membre Dernière intervention 8 avril 2009 2
13 févr. 2006 à 20:52
Petite question : dans certains cas, en sortie de veille (S3 voir S4) windows perds ses périphériques USB. Ce qui se regle à coup de "propriété system -> gestionnaire périphérique -> actualiser" en mode manuel, ou quand on est sous windows XP/2k avec un outil en ligne de commande dont j'ai oublié le nom.

Est ce que cette "Reenumeration of a Device Tree From an Application" pourrait remplir un role similaire, a savoir forcer zindows (98/me) a redecter ses périphériques USB ?
0
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
14 févr. 2006 à 07:52
DeltaFX,



Le rôle de cette fonction est bien de réénumérer les périphériques PnP
du système, comme le fait "actualiser" dans le gestionnaire de
périphériques.

Je ne sais pas par contre si elle fonctionne sous 98/me. Désolé !

Ken@vo

<hr size="2" width="100%">Code, Code, Codec !

[%3C/body ]
0
Rejoignez-nous