Hi,
wie immer bitte ins korrekte Forum verschieben falls ich hier falsch bin.
Ich habe folgende Konstellation:
Hostsystem: Windows Server 2012 Standard mit aktivem Hyper-V
Gastsystem: Windows Server 2012 Standard mit aktivem RDS
Ich baue nun von von einem Rechner (Windows 7) eine RDP Verbindung zum Gastsystem auf, mit aktivierter "Ports" Weiterleitung.
Change ports /q sagt:
COM1 = \Device\RdpDrPort\;COM1:3\tsclient\COM1
COM2 = \Device\RdpDrPort\;COM2:3\tsclient\COM2
C:>echo test > COM1
und
C:\>echo test > \\.\COM1
kommen jeweils auf dem COM1 des Windows 7 Rechners an. Ein Serial Port Monitor und die Gegenstelle bestätigen das.
Im Gerätemanager sind außer der Hyper-V Hardware keine weiteren Geräte vermerkt. Auch Com1 und Com2 nicht.
Versuche ich nun aus einer beliebigen Applikation ein (strPort => "COM1" und "\\.\COM1")
HANDLE test = ::CreateFile(strPort, GENERIC_READ|GENERIC_WRITE, 0, 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
erhalte ich 0xffffffff - Invalid Handle, API Error 2:
- 2 (0x2)
The system cannot find the file specified.
Der Monitor bestätigt auch dieses Verhalten.
Mit den gleichen Einstellungen auf dem Host System werden die COM-Ports im Gerätemanager gelistet und die Kommunikation (CreateFile und folgende Read/Write) funktioniert völlig anstandslos. Was kann ich falsch gemacht haben oder habe ich falsch gemacht und welche Lösungsansätze gibt es?
Schöne Grüße
/e: Um noch einen Drauf zu setzen: Die Weiterleitung eines USB Gerätes, welches virtuelle COM-Ports erstellt funktioniert problemlos, die Ports werden erstellt und sind mit ihrem Namen Ansprechbar.