Tu formules assez mal ta problématique, je ne suis pas sûr de te suivre sur le scénario.
En somme tu veux que deux applications sur le PC exploitent le même port COM pour communiquer avec un microcontrôleur de l’autre côté, c’est ça ?
Il est en effet pas possible de faire ça directement. Car il y aurait un conflit en lecture et écriture.
Suivant ce que tu veux réellement faire, tu as deux possibilités assez évidentes je dirais selon moi.
Si tes deux applications n’ont pas besoin de s’échanger des informations. C’est-à-dire que A et B communiquent sur le port COM, mais quand A communique avec le microcontrôleur, B n’a pas besoin de savoir ce que A envoie au microcontrôleur ou la réponse du microcontrôleur à A. Dans ce cas, suffit de mettre en place une gestion de concurrence, du genre un fichier de verrouillage à un endroit du système. Si le fichier a été crée par A ou B, il garde la main sur la ligne de communication et l’autre attend que ce fichier soit supprimé par exemple pour le créer à son tour et avoir accès au port.
Si tu veux que A et B (ou l’un des deux du moins) sache ce que l’autre envoie ou reçoit du port COM, il faudrait une application intermédiaire. Cette application recevrait, probablement via un socket, les requêtes de chacune à envoyer sur le port COM et pourrait distribuer aux deux les réponses en précisant à quelle requête cette réponse correspond.
Je ne suis pas expert Windows ensuite, il y a peut être un moyen supplémentaire et plus interne pour par exemple cloner la ligne et que l’OS gère lui même cette problématique mais cela me paraît peu probable.