none
How to implement virtual display adapter driver on Windows 10 RRS feed

  • Question

  • Hi All, I need to develop a virtual display adapter driver on Windows 10, for mapping virtual extension screen to IPad, IPad as a phisical "monitor".

    Before Windows 8, we can use mirror driver to develop such a virtual display driver, but now, Windows 10 already updated graphics infrastructure to WDDM, so my driver cannot work any more on new OS.

    Currently, I did some test based on Windows 10 WDK 10 provided sample video driver source code, but there is no lucky, I noticed the sample video driver just a miniport kernel driver, no user space display driver(.dll), according from WDDM design guide, display driver should include user space display driver(.dll), but why WDK 10 sample code didn't include it?

    As for modified miniport driver(no user space driver), I cannot success install it,  device manager always return error message 0x1F, and problem code is 0xC00000BB while both “DriverEntry” and “DxgkDdiAddDevice” return STATUS_SUCCESS. Does this mean I need to configure a user display driver?

    Anyone can give me advise about how to implement a simple virtual display driver would be very very appreciated.

    Thanks!

    Saturday, June 18, 2016 9:30 AM

Answers

  • 1: Windows never supported virtual WDDM display adapters.
    2. Even WDDM Display-Only-Drivers (which do not have a WDDM User Mode Driver) need actual graphics adapter hardware.
    3: Since Windows 8, display mirror drivers were replaced by DXGI Desktop Duplication API.
    More details can be found when reading my numerous posts about exactly this subject (in this newsgroup and another newsgroup).
    Saturday, June 18, 2016 10:06 AM
  • Thanks very much!
    • Marked as answer by Xin Ji Monday, June 27, 2016 7:13 AM
    Monday, June 27, 2016 7:13 AM

All replies

  • 1: Windows never supported virtual WDDM display adapters.
    2. Even WDDM Display-Only-Drivers (which do not have a WDDM User Mode Driver) need actual graphics adapter hardware.
    3: Since Windows 8, display mirror drivers were replaced by DXGI Desktop Duplication API.
    More details can be found when reading my numerous posts about exactly this subject (in this newsgroup and another newsgroup).
    Saturday, June 18, 2016 10:06 AM
  • Thanks for your reply, really appreciated.

    I searched some products on google, such as usb display adapter or use IPad as secondary extension screen through wireless or usb cable and some other apply, all of them seems generate a virtual display monitor by WDDM driver, and Windows 10 will launch a app automatically capture this virtual display monitor then send image to Ipad/Monitor through USB cable or wireless. What do you think about how they implement it?

    I have an idea about generate a virtual display monitor: in WDDM driver initialization stage, we mask all hardware related control(I2C EDID read, DPCD and other), and return all default EDID and other default value to dxgkernel DDI module, I have tried this, but not success(while install driver, device manager always return error code 0x1F).

    Do you have a way to let Windows 10 export a virtual display if OS not support virtual WDDM display adapter?

    Also I read your posts about DXGI Desktop Duplication, it is not what I want. For my project, I really need Windows 10 export a virtual extension screen. Thanks again.

    Thanks very much!

    Sunday, June 19, 2016 2:45 AM
  • There are two ways of doing what you intend to do.
    Both are not supported by Microsoft Windows.
    Both are far beyond the reach of regular diver developer skills.

    1. WDDM Filter Hook Driver
    USB display vendors (including the market leading one) typically use this approach.
    That's why it is sometimes even called "Industry Standard" for USB displays
    when actually it is an unsupported hack only.
    Microsoft called this kind of driver "worrisome practice" on WinHEC 2008.
    Such a driver is extremely difficult to write and to maintain.
    It can potentially break with every update of Windows and/or graphics adapter drivers (e.g. AMD, NVidia, Intel).
    That's why only 5 companies worldwide (including ours) managed to release larger volumes of such a driver into the market place.
    Development time for such a driver: Far more than ten man years.

    2. Virtual WDDM Adapter Driver
    The WDK WDDM Display Only Driver source code sample can be used for a virtual driver.
    Hardware needs to be faked (e.g. by a bus driver using undocumented resource arbiter interfaces).
    Even though this approach is much simpler than WDDM Filter Hook, its drawbacks are actually worse.
    First of all, it cannot perform well because DOD does not support graphics hardware acceleration.
    Second, other display software (e.g. NVidia Control Panel) does not behave well when it sees an unknown graphics adapter (especially on laptops). There is no way to solve or circumvent this. Many more pitfalls exist (e.g. Power Management).
    There are currently only 2 companies who have such a driver out there in the market place for Windows 10 Desktop extension over network. Still to be seen if their solutions can ever be good enough for any customer acceptance (hint: look at their ratings).

    Monday, June 20, 2016 10:44 AM
  • Thanks very much!
    • Marked as answer by Xin Ji Monday, June 27, 2016 7:13 AM
    Monday, June 27, 2016 7:13 AM
  • If I understood what you want, I found an Application on Internet that does what you are looking for. He created a virtual driver so you can extend the desktop.

    https://zoneos.com/zonescreen/


     
    Friday, January 18, 2019 12:29 PM
  • ZoneOS project is outdated (XDDM, Windows 7/XP/-) and does not support Windows 10 (WDDM video).
    Do not waste time on this.
    This task is generally solved by the Spacedesk product created by Marcel Rüdinger who is present here (see previous posts).
    https://spacedesk.net/


    • Edited by Igrigg Friday, January 18, 2019 1:06 PM
    Friday, January 18, 2019 12:48 PM
  • Hi Marcel, I need some help on this. How can I reach out you? 

    Thanks,


    abrar

    Tuesday, April 9, 2019 4:42 PM
  • I received your email and will reply to a similar previous post here in this newsgroup.
    Wednesday, April 10, 2019 8:01 AM