Bonjour, (le nom un peu compliqué du sujet est pour les recherches, parce que j'aimerai bien que tous les titres soient précis ( "j'ai un probleme" c pas sympa comme titre de thread ^^ ) )
Résumé du problème : Mon ReadFile renvoit false quand mon Handle (qui est bon) est sur un périphérique USB, je n'ai pas le problème en Visual Basic.
Le problème en détail
Je rencontre un petit problème avec un ReadFile.
Dans un premier cas j'ouvre un Handle sur un port virtuel "COM6" et je communique via ce port avec un hardware distant (par bluetooth) et avec le ReadFile suivant tout se passe bien :
dans mon deuxieme cas j'ouvre un handle sur un periphérique USB; le handle marche correctement, (grace au fonction fournit par la bibliotheque hid.dll je peux le vérifier aisément (ca communique ) ) mais le ReadFile me renvoit false. Avec la meme structure que précédemment :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 h = CreateFile("COM6",GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); (...) if(ReadFile(h,data,3,&nbRead, NULL)){...}
Je cherche donc à résoudre ce problème, sachant que cela fonctionne en VB :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 h = CreateFile(FunctionClassDeviceData.DevicePath,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,0,NULL); // FunctionClassDeviceData.DevicePath correspond au chemin d'acces a l'USB, et cette ligne marche :) (...) if(ReadFile(h,data,3,&nbRead, NULL)){...}
Si qqun voit l'erreur flagrante ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 OpenForRead = CreateFile(FileName, GENERIC_READ, FILE_SHARE_READWRITE, SA, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0); OpenForWrite = CreateFile(FileName, GENERIC_WRITE, FILE_SHARE_READWRITE, SA, OPEN_EXISTING, 0, 0); (...) Success = ReadFile(ReadHandle_USB, Buffer, Count, BytesRead, ReadOverlap)
Partager