Capture des octets sur un port série

cs_misterlove Messages postés 2 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 23 août 2006 - 21 août 2006 à 13:54
hibakusha Messages postés 25 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 23 mai 2007 - 23 sept. 2006 à 19:19
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

MNEMONIC Messages postés 59 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 septembre 2006
23 août 2006 à 13:38
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...
0
cs_misterlove Messages postés 2 Date d'inscription mercredi 12 octobre 2005 Statut Membre Dernière intervention 23 août 2006
23 août 2006 à 19:20
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?
0
MNEMONIC Messages postés 59 Date d'inscription dimanche 19 décembre 2004 Statut Membre Dernière intervention 1 septembre 2006
24 août 2006 à 08:30
...


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 !
0
hibakusha Messages postés 25 Date d'inscription vendredi 4 août 2006 Statut Membre Dernière intervention 23 mai 2007 1
23 sept. 2006 à 19:19
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~!
0
Rejoignez-nous