com0com virtuelle port nicht gefunden
Habe ich installiert, anscheinend erfolgreich, com0com v2.2.2.0 auf einem 64-bit Windows 7 Maschine.
Ich den Befehl ausführen Dienstprogramm, wie diese:
command> install PortName=COM9 PortName=COM8
CNCA0 PortName=COM9
CNCB0 PortName=COM8
ComDB: COM8 - logged as "in use"
ComDB: COM9 - logged as "in use"
command> busynames COM?*
COM3
COM4
COM5
COM6
COM8
COM9
COMPOSITEBATTERY
Hinweis: angemeldet als "in Verwendung" ist NICHT eine Fehlermeldung?
Dann versuche ich zu öffnen, COM8, wie dies
m_hIDComDev = CreateFileA( szCodedPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL );
if( m_hIDComDev == NULL || m_hIDComDev == INVALID_HANDLE_VALUE ) {
wchar_t * lpMsgBuf;
DWORD dw = ::GetLastError();
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
dw,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0, NULL );
myErrorMsg = (char*)malloc( 200 );
sprintf(myErrorMsg,"Error creating connection %s ( %s ) %S",
szPort,szCodedPort,lpMsgBuf);
Dieser schlägt mit
Error creating connection COM8 ( COM8 ) The system cannot find the file specified.
Habe ich versucht, sowohl die "COM8" und "\\.\COM8"
.
Beachten Sie, dass die exakt gleichen Aufruf CreateFileA funktioniert perfekt auf eine 'echte' COM-port.
Q: Kann mir jemand sagen, was das problem ist?
A: Auf windows 7 64 bit müssen Sie aktivieren die Prüfung für nicht signierte Treiber.
- Führen Sie eine Eingabeaufforderung als administrator. ( Es ist nicht genug, einfach nur zu laufen von einem Konto mit admin-rechten. Sehen hier für details, wie dies zu tun. )
- Geben Sie den Befehl
bcdedit -set TESTSIGNING ON
- Neustart. ( Windows wird ein "test-Modus" Hinweis unten rechts auf dem desktop )
Für Windows 8 mit dieser Methode nicht zufrieden stellend funktioniert oder einfach. Hier ist einige Diskussion der Probleme und Problemumgehungen.
Alternativ möchten Sie vielleicht versuchen, ein signierte version - ich habe NICHT versucht, diese selbst.
COM8 - logged as "in use"
- das ist wahrscheinlich Ihr problem.Reinhart Sind Sie vertraut mit com0com? Die "in use" - Meldung, laut der Hinweise in der Dokumentation, bedeutet nur, dass dieser COM-ports zugewiesen wurden, durch die der com0com-Treiber und wird daher nicht neu vergeben werden. Wenn das OS dachte, Sie waren zu beschäftigt damit, würde es mir einen anderen Fehler. AFAIK!
"In Verwendung" ist in der Regel eine Fehlermeldung. Schön, open-source, können Sie Lesen Sie den code, um zu sehen, was es eigentlich bedeuten soll.
Ja, ich habe com0com, aber war der Zugriff mit C#. Leider kann ich nicht mehr helfen.
Passant OK, was den Fehler verursacht?
InformationsquelleAutor ravenspoint | 2012-01-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier sind meine Punkte:
64-bit drivers
zusigned
.com0com.sys
(64bit) ist eine bloße unsigned kernel-Modus-Treiber.SoftWx geschrieben hat ein Interessantes tutorial zur Installation auf einem 64-bit-Windows-7-Maschine. Holen Sie es hier.
Das einzige problem bei dieser Lösung ist, dass Windows muss im test-Modus, damit die Treiber funktionieren. Sobald Sie neu starten, werden Sie nicht in der Lage, es zu benutzen mehr. Diese Lösung ist nicht dauerhaft und ich will nicht zu verlassen, meine computer-Treiber-test-Modus die ganze Zeit (es stellt ein Sicherheitsrisiko).
InformationsquelleAutor menjaraz
Falls jemand auf diese, und für dieses Thema interessiert, der 2.2.2.0-version von com0com ist unterzeichnet für 64-bit-Windows. Damit entfällt die Notwendigkeit, springen durch Reifen, setzen Sie Windows im "test" Modus.
Die 3.0.0.0 version nicht nicht Arbeit auf Windows 7 64Bit. 2.2.2.0 funktioniert perfekt.
Es gibt keine Changes.txt in der 3.0.0.0 Ordner auf SourceForge. Weiß jemand, was sich geändert hat zwischen 2.2.2.0 und 3.0.0.0?
InformationsquelleAutor hatchet