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)
Das habe ich schon probiert. Leider finde ich damit nichts. Nicht einmal bei Anwendungen, die nachweislich einen seriellen Port offen haben.
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?
Hast Du die Programme auch als Administrator ausgeführt? Beide können sehr wohl auch virtuelle serielle Ports anzeigen.
Ja, natürlich als Administrator.
Ach so. Windows 7 Professional 64 Bit SP1, deutsch. Hatte ich ganz vergessen, zu schreiben.
dann lass dir doch mal die offenen Handels von einen Prozess anzeigen wo du sicher bist das er den COM geöffnet hat. Dann sieht du doch den Name.
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.
Das ist nur eine Teilfunktion dessen, was der ProcessExplorer liefert - nämlich die Handle-Ansicht.
Naja, wäre es nicht merkwürdig, hätte ich hier nicht gepostet. ;-)
War da beim Windows-Start bereits Datenverkehr? Wen ja hat das Windows deine Schnittstelle eventuell als HID oder Maus erkannt.
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.
Welcher COM Port ist es denn? Hast du schon einmal versucht den COM Port auf einen anderen zu legen, bspw. COM15 auf COM3?
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?
Welcher Bluetooth-Stack wird verwendet? - ggf. einfach einen anderen nehmen ;D (z.B.: http://www.bluesoleil.com/products/S0001201005190001.html)
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... ;-)
:
Bearbeitet durch User
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
:
Bearbeitet durch User
das mapping com16/com1 zu device name findet sich unter HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM edit: http://answers.microsoft.com/en-us/windows/forum/windows_7-hardware/how-to-programmatically-find-usb-serial-port/3b00a0e3-5d7d-4d6d-9a34-6860f8ce3da0
:
Bearbeitet durch User
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.