USB Graphics Adapter show nothing with my virtual WDDM driver at extension mode

I am implementing a virtual wddm driver (wddm 1.0) for win7 run on virtualbox.

USB Graphics Adapter: displaylink product
virtual wddm driver : wddm 1.0


I takes following steps.

  1. installed a mirror driver and a virtual wddm driver in windows 7 which running at virtualbox

  2. I use a client remote access to windows 7(something like rdp)

  3. USB Graphics Adapter connect to client and redirect to windows 7 by usb redirect technology , Windows 7 detect the device.

  4. I install USB Graphics Adapter driver successful,

  5. I use clone mode, USB Graphics Adapter display normal

here is the problem

  1. i use extension mode, USB Graphics Adapter display nothing,

PS:
http://www.yiiyee.cn/Blog/wddm2/ (In Chinaese)
which point out, two source is extension mode, i try but failed

Hi KunMing,

I am not sure if DisplayLink software works in VM or not. In my memory,
DisplayLink denied support of virtual machine, particularly on Win7 , Win8
or above. Start from Win10 RS1, a special driver architecture make it
possible to use DL on VM. See
http://support.displaylink.com/knowledgebase/articles/544870-unable-to-install-displaylink-software-on-a-virtua
.

Also, the mirror driver
https:
is not based on WDDM architecture. Theoretically you don’t need mirror
driver if you have a virtual WDDM driver.

2017-06-11 12:09 GMT+08:00 :

> I am implementing a virtual wddm driver (wddm 1.0) for win7 run on
> virtualbox.
>
> USB Graphics Adapter: displaylink product
> virtual wddm driver : wddm 1.0
>
> -----------------
> I takes following steps.
>
> 1) installed a mirror driver and a virtual wddm driver in windows 7 which
> running at virtualbox
>
> 2) I use a client remote access to windows 7(something like rdp)
>
> 3) USB Graphics Adapter connect to client and redirect to windows 7 by usb
> redirect technology , Windows 7 detect the device.
>
> 4) I install USB Graphics Adapter driver successful,
>
> 5) I use clone mode, USB Graphics Adapter display normal
>
> here is the problem
>
> 6) i use extension mode, USB Graphics Adapter display nothing,
>
> PS:
> http://www.yiiyee.cn/Blog/wddm2/ (In Chinaese)
> which point out, two source is extension mode, i try but failed
>
>
>
>
> —
> NTDEV is sponsored by OSR
>
> Visit the list online at: http:> showlists.cfm?list=ntdev>
>
> MONTHLY seminars on crash dump analysis, WDF, Windows internals and
> software drivers!
> Details at http:
>
> To unsubscribe, visit the List Server section of OSR Online at <
> http://www.osronline.com/page.cfm?name=ListServer&gt;
></http:></http:></https:>

Even for making a first wild guess only, one would at least need to know the things below:

  1. Is your “Virtual WDDM Driver” replacing the original Virtual Box WDDM display driver?
  2. Or is your “Virtual WDDM Driver” running as a second additional WDDM adapter (heterogeneous adapter scenario)?
  3. Does your “Virtual WDDM Driver” include a virtual WDDM User Mode Driver?
  4. Or is it a virtual WDDM Kernel Mode Driver only?
  5. Are you installing DisplayLink USB and WDM hook drivers, too?
  6. Why are you writing a Virtual WDDM Driver" when already using DisplayLink drivers (which include WDDM display drivers)?
  7. Are you writing an own “Virtual WDDM Driver” because DisplayLink drivers don’t comprehensively work on virtual machines?
  8. Are you trying to write an own “Virtual WDDM Driver” to make DisplayLink drivers comprehensively work on virtual machines?
  9. Why are you using a mirror driver? Trying to compensate some DisplayLink VM limitations on Win7 NON AERO?

Enhancements to previous post:
DisplayLink drivers DO work in some VM scenarios.
DisplayLink drivers DO NOT work in some other VM scenarios.
That’s why there is no official support for them.
Still some companies are using them on VM in certain scenarios.

Marcel Ruedinger

datronicsoft

@JiaBang Lin

thank you for your quick replay.

er, displaylink employee point out they don’t suport vm.
http://displaylink.org/forum/showthread.php?t=63090

I would try Win10 RS1

@Marcel Ruedinger
Thank you for your quick reply.

  1. Is your “Virtual WDDM Driver” replacing the original Virtual Box WDDM display
    driver?
    Yes, Virtual WDDM Driver" replaces the original Virtual Box WDDM display driver

  2. Or is your “Virtual WDDM Driver” running as a second additional WDDM adapter
    (heterogeneous adapter scenario)?
    no,

  3. Does your “Virtual WDDM Driver” include a virtual WDDM User Mode Driver?
    Yes, It is a full WDDM Driver. But User Mode Driver is empty implement.

  4. Or is it a virtual WDDM Kernel Mode Driver only?
    no

  5. Are you installing DisplayLink USB and WDM hook drivers, too?
    Yes, I install.

Device Manager shows USB Display Adapters and an USB LCD.

  1. Why are you writing a Virtual WDDM Driver" when already using DisplayLink
    drivers (which include WDDM display drivers)?

Customer need dual monitor, one is handwritten digital screen(displaylink product)
Also, to install displaylink software needs WDDM Driver, XPDM not works.

Windows 7 Virtual Machine doesn’t have a default wddm driver.

Virtualbox just for debug

  1. Are you writing an own “Virtual WDDM Driver” because DisplayLink drivers
    don’t comprehensively work on virtual machines?
    Yes, displaylink need WDDM,

  2. Are you trying to write an own “Virtual WDDM Driver” to make DisplayLink
    drivers comprehensively work on virtual machines?

Yes, to make handwritten digital screen display normal at extension mode

  1. Why are you using a mirror driver? Trying to compensate some DisplayLink VM
    limitations on Win7 NON AERO?
    mirror driver is just for remote access purpose which doesn’t matter

Wooohoooooo - very high risk approach on Windows 7!
Might work or might not work.
Many degrees of freedom which are not under own control…
Many reasons why it could fail beyond a chance to fix…

  1. Could be a Windows error (not under own control). Windows expects WDDM drivers with Logo and DTM tests passed.
    This virtual WDDM driver has no Windows Logo and thus will fail many functionalities expected by Windows. It would almost be impossible to find out what exactly makes Windows fail. It could also be a very simple Windows limitation like e.g. using Windows 7 Starter Edition? Windows 7 Starter Edition only supports Desktop Duplication but NOT Desktop Extension.

  2. Could be a DisplayLink error (not under own control).
    In case of Desktop Extension, DisplayLink driver has to add a Video Present Source and a Video Present Target to the Video Present Network.
    DisplayLink Win7 driver is a non-standard WDDM Filter Hook driver. Such drivers are officially not supported by Windows. DisplayLink drivers only works reliably in tested environments - namely: Intel, Nvidia and AMD GPU driver. DisplayLink drivers might not work correctly in any or all other environments (e.g. as discussed above in combination with certain other virtual machines WDDM drivers). Nobody can ever know except DisplayLink themselves.

  3. Could be an error in the own virtual WDDM driver (under own control, but difficult to find).
    Just a wild guess as an example. Maybe the virtual WDDM adapter only exposes one Video Present Source.
    Maybe this confuses DisplayLink which only works with Intel/Nvidia and AMD GPUs which all have 2-6 Video Present Sources.
    Again: Just a wild guess - only to give an idea…

What I still don’t understand:

  • Who should show main display while USB display is showing extended display?
  • Are there two USB display adapters?
  • One USB display for main display and another one for extended display?
  • How many Video Present Sources does the virtual WDDM adapter expose?
  • How many Video Present Targets does the virtual WDDM adapter expose?

Marcel Ruedinger

datronicsoft

@Marcel Ruedinger

  • Who should show main display while USB display is showing extended display?
    A bank employee and a customer
    bank employee watch main display while customer watch usb display,
    usb display show contract, customer sign the contract via usb display( handwritten digital screen)

  • Are there two USB display adapters?
    Just One, the others display connect by vga

  • One USB display for main display and another one for extended display?
    no.
    vga display for main display and usb display for extended display

  • How many Video Present Sources does the virtual WDDM adapter expose?
    current export one Video Present Sources

  • How many Video Present Targets does the virtual WDDM adapter expose?
    current export one Video Present Targets

PS:
I have test follow, failed…
Video Present Sources – Video Present Targets
1 --1
2 – 2
n – n
(n >=2?

As you said it is very high risk approach, I would like to test win10

Using a similar approach on Windows 10 1607 “Anniversary Update” seems a promising option to reduce risk by large magnitudes.

  1. Virtual WDDM driver would have to be WDDM DOD (Display Only Driver).
    WDDM DOD has much simpler driver architecture (compared to WDDM 1.0).
    WDDM DOD has Microsoft driver sample code (WDDM 1.0 has not).
    WDDM DOD Microsoft driver sample code could probably be modified easily to pass Windows Logo tests (virtual WDDM 1.0 driver can not).
    etc.

  2. DisplayLink driver on Windows 10 1607 “Anniversary Update” is “WDDM Indirect Display / IddCx”.
    IddCx is a simple standard Windows display driver model (DisplayLink Win7 driver is non-standard and extremely complicated).
    DisplayLink IddCx seems to work together well with Microsoft Basic Display WDDM DOD.
    Thus Microsoft WDDM DOD source code sample should also work together with a DisplayLink IddCx (or could easily be extended to work together)
    etc.

  3. Only using fully Windows supported WDDM technology: WDDM DOD driver architecture together with WDDM IddCx architecture.
    Details like number of Video Present Sources and Targets would not matter any more (just keep the WDDM DOD sample code VidPn as it is).

The only remaining question: How does the virtual WDDM DOD driver main screen content get to the PC screen?

  • Via RDP? This probably works.
  • Via own frame buffer interface from WDDM DOD driver? This probably works, but large effort (if not yet implemented).
  • Via own XPDM mirror driver? This probably doesn’t work. Mirror drivers are officially not supported on Windows 10 any more. Still some of them seem to keep lurking around and even seem to be working to some extend.

Would be interesting to get feedback and progress info if and how well this above named Windows 10 1607 “Anniversary Update” approach is working.

Marcel Ruedinger

datronicsoft

@Marcel Ruedinger

Windows 10 1607 “Anniversary Update” is working.

Via own frame buffer interface from WDDM DOD driver, and i have a lot of works to do.