It works fine to access to COM port, but it doesn't works for virtual COM port.
If you tried to get SerialDevice instance of virtual COM port, you would not get, SerialDevice.FromIdAsync method would return null.
var deviceColletion = await DeviceInformation.FindAllAsync("COM3");
var device = deviceColletion.First();
var s = await SerialDevice.FromIdAsync(device.Id); // return null
If you want to write/read to virtual COM port, you can use System.IO.Ports.SerialPort class.
It can Open virtual COM ports, and write / read data to the virtual COM port.
But, there is a limitation. SerialPort class on UWP can't list ports using GetPortNames method. If the method was used, then PlatformNotSupportedException would be occurred.
So, I created a sample app using it.
The sample app writes / reads to virtual COM port COM3 for reading and COM4 for writing.
I tested the app on an environment that is set up using com0com, like following:
The result of the app is as below:
The source code is on following GitHub repository.