Hallo, ich habe das Problem, dass ein virtueller serieller Port
(wahrscheinlich) von einer anderen Anwendung blockiert wird. Ich kann
ihn nicht öffnen. Wie kann ich herausfinden, welche Anwendung der
Übeltäter ist?
Jens schrieb:> Wie kann ich herausfinden, welche Anwendung der> Übeltäter ist?
ProcessExplorer von Sysinternals und dort nach Handels suchen (COM1 oder
so)
Dann nicht nach "COMx" suchen, sondern nach "serial". Das sollte mehr
bringen. Serielle Schnittstellen können unter unterschiedlichen Namen
angesprochen werden, das hat mit der Historie der DOS- und
Windows-Entwicklung zu tun. "COMx" ist ein Relikt aus der DOS-Zeit.
Ansonsten: Sieh Dir die Handles an, die Deine nachweislich eine
Schnittstelle nutzende Anwendung verwendet -- da sollte die
Schnittstelle in irgendeiner Weise auftauchen.
Ich habe nach "com" gesucht, nach "serial" und nach "device". Leider
nichts gefunden. Wenn ich mir alle Handles meines Programms, das mit
einem virtuellen Port korrekt kommuniziert, anzeigen lasse, ist da kein
Eintrag, der auf einen seriellen Port hindeutet.
Was ich eben auch probiert habe: Ich habe Portmon runtergeladen. Leider
zeigt mir das Programm gar keine Ports an?! Beide Programme können
wahrscheinlich nicht mit virtuellen Ports umgehen? Die Frage ist nun,
wie geht es?
Hallo,
ich hatte ein ähnliches Problem mit einem PCI-Exprees/seriell Wandler.
Mit einem Terminal Programm habe ich die Schnittstelle geöffnet und
direkt nach dem öffnen wurden die betreffenden Zeilen in dem Programm
ProcessExplorer von Sysinternals angezeigt. Bevor die Schnittstelle
geöffnet wird muss im ProcessExplorer das Terminal Programm ausgewählt
werden sonst bekommt man die Änderung nicht mit.
Bei mir hieß der COM4 dann \Device\OXPCIESERMF0.
Mann muss jetz nur nach "OXPCIESERMF0" suchen.
Wenn sich eine serielle Schnittstelle nicht öffnen lässt, unter
Geräte-Manager den COM-Port deaktivieren und wieder aktivieren.
Gruß
Wolfgang
Wolfgang schrieb:> unter> Geräte-Manager den COM-Port deaktivieren und wieder aktivieren.
Und dazwischen mal neu starten, dann müsste jemand jammern, dass COMx
fehlt.
Georg
Wie gesagt, der Process Explorer zeigt nichts mit device... oder
ähnliches an. Getestet habe ich das gerade mit einem PuTTY-Prozess, der
gerade korrekt auf einen virtuellen seriellen Port verbunden war.
Jens schrieb:> Wie gesagt, der Process Explorer zeigt nichts mit device... oder> ähnliches an.
Das klingt /sehr, sehr merkwürdig/, weil genau das normalerweise der
Fall ist.
Nein, das Gerät ist rein passiv, also es antwortet immer nur, sendet
aber nichts einfach so.
Wenn jemand ein HC05 oder HC06 (RS232-Bluetoothmodul) hat, kann er das
Phänomen mit dem anscheinend fehlenden Handle selbst mal ausprobieren.
Jens schrieb:> Hallo, ich habe das Problem, dass ein virtueller serieller Port> (wahrscheinlich) von einer anderen Anwendung blockiert wird. Ich kann> ihn nicht öffnen. Wie kann ich herausfinden, welche Anwendung der> Übeltäter ist?
Hallo,
wie öffnest du den denn, mit C? (Handle = CreateFile())?
In dem Fall kannst du die mit GetLastError() die exakte
Fehlerbeschreibung holen. Dazu
1
Error=GetLastError();
direkt danach ausführen.
Das liefert eine Zahl, die kann man bei Winzigweich nachschlagen, und
zwar dort:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381%28v=vs.85%29.aspx
Was genau mault Windows an?
Im übrigen kann ich bestätigen, dass die Methode "nach "COM" suchen auch
mit virtuellen COM-Ports funktioniert, zumindest mit der CDC von
Microchp.
Die Portnummer saugt sich Windows bei der Erkennung des Bluetoothmoduls
aus den Fingern. Die ist immer anders und ich habe keinen Einfluss
darauf.
Der Fehler, wenn ich selbst manuell den Port öffne ist
ERROR_ACCESS_DENIED
Wie gesagt, es melden am fraglichen System auch andere Programme (PuTTY
z.B.) ein Problem. Und ja, auch als Administrator.
Daniel Schuhmann schrieb:> Ich werfe mal den Portmon mit rein.
Den hatte Jens schon geworfen:
Jens schrieb:> Was ich eben auch probiert habe: Ich habe Portmon runtergeladen. Leider> zeigt mir das Programm gar keine Ports an?!
Daniel Schuhmann schrieb:> Ich werfe mal den Portmon mit rein.Jens schrieb:> Was ich eben auch probiert habe: Ich habe Portmon runtergeladen. Leider> zeigt mir das Programm gar keine Ports an?! Beide Programme können> wahrscheinlich nicht mit virtuellen Ports umgehen? Die Frage ist nun,> wie geht es?
Bluetooth-Stack tauschen? Scherzkeks.
Portmon meldet mir seit dem letzten Neustart auch nur noch "Error 2" und
beendet sich dann. Mittlerweile weiß ich auch, warum. Es läuft nicht auf
64 Bit.
Jens schrieb:> Bluetooth-Stack tauschen? Scherzkeks.
Was spricht dagegen? Das hat bei mir mit nem Logilink-BT-USB-Adapter
(CSR-Chip) unter win8.1-64bit an einen HC-05 Besserung gebracht. Beim
MS-Stack durfte ich nach schließen des virtuellen COM-Ports immer erst
das Gerät neu koppeln oder kurz außer Reichweite bringen bevor eine
erneute Verbindung möglich war.
Hi, misch auch mal wasmit rein:
Hast ggf. eine Virtuelle Maschine auf dem PC laufen, die dir den Port
auf dem Host stiehlt? mit VirtualBox kann das nämlich so sein... ;-)
putty auf com1 zeigt in Process Explorer einen Handle auf
\Device\Serial0
putty auf com16 (ftdi) zeigt einen Handle auf \Device\VCP0
wenn ich find handle mache und nach vcp suche kann ich auch rückwärts
putty finden
Es gibt doch so Com Port Sniffer mit denen man beobachten kann was die
Ports treiben. Wenn da eine serielle Schnittstelle von irgendwo geöffnet
wird, zeigt der das auch an....
Es gibt Dienste in Windows, die die Schnittstellen abfragen, auch wenn
du sie garnicht brauchst. Willst du was anschließen, hast du Probleme
bei der Installation. Schau dort mal nach.