How to run Parsec without monitor? Here’s a virtual monitor solution for you (Indirect Display)

I have been gaming remotely for years, though there is a serval approach for streaming from your computer. In my opinion, there’s no doubt that Parsec is the most outstanding one. The NAT-traversal technology Parsec used is so advanced that it can be widely used in complex network environment. And the video encoding is very efficient too. Overall, considering the latency and the accessibility, Parsec is way better than RDP, Steam Remote Play, Moonlight, Dixper, etc.

The Problem

However, most of those solutions — including Parsec — requires a working monitor, no matter a real one, a fake one or a virtual one, as far as your operating system recognizes it. So now you have five choices:

  • You can directly inject the EDID to Professional workstations GPUs via your GPU control panel
  • You have HDMI Dummy Plug on amazons for only 7.5$
  • Virtual Display from SplashTop and VNC, which I have never succeed.
  • For Windows versions below 1607, you can force Windows to create a virtual monitor via Control Panel - Display - Screen Resolution - Multiple Displays - Try Connect anyway on: VGA
Doesn’t work on Windows version above 1607
  • Indirect Display Driver for Windows 10

You can choose any approach you like, but the most flexible way I think is the last one. So let’s check it out. (Maybe those procedures are a little too Geek for you, so you can just scroll down to the end and get the compiled driver and executable.)

Building the Driver

Assuming that you have the latest Visual Studio installed, if not, then it is recommended to scroll directly to the end and precompiled binaries.

First, check out the code from this repo. Since we just need the code in video/IndirectDisplay, I recommend using GitZip to download it.

Then, install WDK from Don’t forget the VSIX, which should be automatically installed after WDK finished.

We need to modify Driver.h and Driver.cpp

Unarchive the zip file and open IddSampleDriver.sln with your Visual Studio. Check on the Solution Explorer, open Driver.h and Driver.cpp.

Navigate to Line 27 in Driver.cpp, change the monitor count to 1 (if you need more, modify as needed)

static constexpr DWORD IDD_SAMPLE_MONITOR_COUNT = 1; 

Delete Line 58–75 (If you need more displays, keep it)

Add the modes you need after Line 54. Now the code should look like this:

Navigate to Line 755, if the mode you add above not listed here, then add it.

Finally, navigate to Line 42 in Driver.h, change the mode count.

static constexpr size_t szModeList = 4;

Save all the file, and build solution (Ctrl+Shift+B or via toolbar).

Don’t forget to change the platform to Release@x64(or x86 depending on your OS architecture)

You may receive an error coded MSB8040, you can just disable the check(Right-click IddSampleDriver in solution explorer - Properties), or install the patch.

Vulnerability has nothing to do with me LOL

After compilation, the driver should be situated in x64\Release.

Installing the Driver

First, install IddSampleDriver.cer to Trusted Root Certification Authorities stor in your Local Machine. You can refer to Microsoft’s Official document.

Then use device manager to install the inf. You may refer to

Notice: the inf in x64\Release\IddSampleDriver is the signed driver we need, the one in the upper directory is not signed so you can’t install it.

After installation, you can see a new display connected to “IddSampleDriver Device” in the control panel. Look at so many resolutions options!

All the resolutions you get in my precompiled driver

If you don’t need it any longer, just uninstall it from device manager.

It works pretty well for my Parsec; Of course you can use Dixper or any other streaming software.

Download Precompiled Driver

If you have any doubts about the security of executable files and drivers, I recommend compiling by yourself according to the above method.

Enthusiast of Front-end, Network Engineering and Cybersecurity.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store