Capture des octets sur un port série

Signaler
Messages postés
2
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
23 août 2006
-
Messages postés
25
Date d'inscription
vendredi 4 août 2006
Statut
Membre
Dernière intervention
23 mai 2007
-
Bonjour,

Je cheche a développer un programme qui permet de capturer les données passant par un port série (comme le fait le logiciel PortMon). Je développe en Visual C++ 6.0 pour Windows XP.
Quelqu'un a t-il une idée sur les fonctions à utiliser pour accéder au port (VxD, DLL etc.).
Pour rappel, PortMon est capable de capturer les données sur une port série ouvert par une autre application.

Merci d'avance

4 réponses

Messages postés
59
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2006

Cherche du côté des fonctions suivantes :


CreateFile
CreateFile("COM1",GENERIC_READ|GENERIC_WRITE,0,(LPSECURITY_ATTRIBUTES)NULL,CREATE_ALWAYS,0,0);

FlushFileBuffers
BuildCommDCB
SetCommState
SetCommTimeouts
WriteFile
ReadFile
CloseHandle

Elles sont dans l'ordre d'utilisation...
En gros, ça fonctionne comme l'utilisation d'un fichier...

Désolé, je peux pas diffuser mon code comme ça, mais si j'ai loccasion de faire un petit exemple, je le mettrais par ici...
Messages postés
2
Date d'inscription
mercredi 12 octobre 2005
Statut
Membre
Dernière intervention
23 août 2006

Merçi pour ta réponse, mais à ma connaissance, ces fonctions permettent d'accéder à un port série sous réserve que celui ci ne soit pas déjà ouvert. Est-ce bien le cas?
Messages postés
59
Date d'inscription
dimanche 19 décembre 2004
Statut
Membre
Dernière intervention
1 septembre 2006

...


Pas la moindre idée !


En gros, tu veux faire une sorte de sniffer pour port série ?


 


Je sais pas si je dis une bêtise, mais les changements d'état sur le port doivent bien déclancher des interruptions, il doit bien être possible de les récupérer et de les refaire suivre aux autres applis ...?
Désolé, j'ai pas mieux !
Messages postés
25
Date d'inscription
vendredi 4 août 2006
Statut
Membre
Dernière intervention
23 mai 2007

Yop ! CreateFile et toutes ses copines ne fonctionnent que si le port que tu veut ouvrir est libre. Donc tu peut oublier l'API "traditionel" pour espionner un port série.

Je ne sais pas comment fonctionne PortMon, je me suis déja posé la question mais je n'ais pas chercher. Vas chez Systems Internals, ils expliquent en partie le principe, ça donne une idée d'où aller chercher plus d'info sur le MSDN et ailleurs.

Tu peut toujours te procurrer et lire Windows Internals (il me semble qu'il en parle un peu, mais je n'ais que survolé la 1ere édition de ce boukin il y a longtemps), de Mark Russinovich (l'auteur de PortMon, un ancien de chez M$)

Je ne pense pas que ce soit trivial, alors bon courage.

zNoRt~!