Dear community,
I'm a little bit stucked in the last weeks with a problem, maybe you can help me with.
1. I've here the following environment:
- Workstation 11 on Windows 7 Host
- a virtual WIn XP and the same issue on virtual Win NT4.0
- a GPS clock, which is sending every 1 minute a simple electrical pulse to the serial port of my Host PC
- a software inside the virtual windows, which needs to receive this pulse as a time reference
2. The situation without VM:
If I have a physical machine with WinXP and my software running the serial communication looks on a sniffer like that (attached SerialPortComm_PhysicalMachine.jpg):
The software I have, is sending a wait_on_mask command to the driver and when the electrical minute pulse arrives, it detects it like an wait event.
3. The Problem:
Now I had to migrate the WinXP into an VM and need to passthrough the communication with clock, through the Host to the virtual machine.
The physical com port is passed through to the virtual machine as normal. You know, there are not much settings, just select the com port you want to passthrough.
But If I look now, at the serial communication inside the VMWare, it looks like that (attached SerialPortComm_InsideVM.jpg):
The data (40 00 00 00, on direction UP) for the wait_on_mask event is not arriving inside the VM.
Therefor I had a look on the communication on the host (attached SerialPortComm_OutsideVM_onHost.jpg):
And here we can see, that no IOCTL commands are passed through to the host. But every minute, the Answer "grows" by one byte with the value "00", and the line on the request view becomes longer and longer.
It seems, like VMWare is not able to finalize the answer, to pass it through to the VM, because it's not a real communication, but just an received status bit.
Does anyone have an idea, how to modify VMWare, that it just sends the one received bit through, to the VM?
I think it can't be a big issue, but I just don't see the answer.
Thank you all in advance.
Best Regards,
Franz