Git Product home page Git Product logo

virtual-display's People

Contributors

linjiabang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

virtual-display's Issues

Driver certification issues

Hey there, great project, it's the only one of its kind that works for me, I tried the indirect display driver from the Microsoft employee and it crashed my system.

I did have to mod your build batch file a bit to get it to compile on my machine, but it fails at the certification step so I can't actually install a custom-built vmon driver, only your precompiled version. The vmon.exe file I built works fine with your precompiled vmon driver though.

Your batch file has a hard coded Digisign .cer filename, so I tried to get my own but I can't figure out why it's not working. There are a lot of parameters and cert types.

Can you tell me, do you have to use a paid certificate authority? I'm OK with the user having to click "trust this driver" but right now, I can't get signtool to actually do its job.

I'm also confused about the differences between the various certificate authorities and which exact one is needed for this type of driver signing. Can you elaborate a bit on how you created your .cer file so that I can get this up and running with my own?

Thanks!

vmon.exe was not display the content of the virtual monitor

hi,Lin
i was follow your step4 ,installed everthing succeced,also i saw the "fresco logic proxy display adapter"
and the "ljb virtual monitor" under the "system devices" node which is in the device manager view.
and then i started vmon.exe ,nothing happened,even if i selected the "plugin" "open"menu.
am i miss some sets to let the vmon.exe display the content of the virtual monitor.
thanks very mush!

precompiled vmon driver install not correctly in Windows7_x64.

Good project, thank you very much.

But I had a problem when I install vmon driver, I got error code 39,
follow is cmd output.
Thank you.


E:\virtual-display>E:\virtual-display\tools\devcon\x64\devcon.exe install E:\virtual-display\tools\precomplied\vmon\vmon
_func.inf root\ljb_vmon
Device node created. Install is complete when drivers are installed...
Updating drivers for root\ljb_vmon from E:\virtual-display\tools\precomplied\vmon\vmon_func.inf.
Drivers installed successfully.

E:\virtual-display>E:\virtual-display\tools\devcon\x64\devcon.exe status root\ljb_vmon
ROOT\SYSTEM\0002
    Name: LJB Virtual Monitor
    The device has the following problem: 39
1 matching device(s) found.

E:\virtual-display>pause
Press any key to continue . . .

>60hz refresh rate support via Extended EDID not working

Hi there, sorry to bug you again, I'm having a hard time trying to understand why adding a 120hz mode (say, at 1080p) doesn't work.

I can never see that as an option in display settings for the virtual desktop screen after I recompile the vmon driver and run it. I've managed to add different resolutions, like 1440p or 2160p (UHD), using SetDetailTimingDesc but I can't for the life of me figure out how to get anything but 60hz working.

I removed the hardcoded 60hz line computing the max pixel clock:

UINT CONST PixelClock = (Width + HBlank) * (Height + VBlank) * RefreshRate;

I also tried manually using the EDID bytes (basic and extended) for my Acer G-sync monitor as a template, to add 120hz and 144hz modes, exporting from CRU to replace the default Samsung monitor you used.

I also tried adding >60hz using the standard timings, by following the code comments to set the bits to 60 since the extended EDID refresh rate is supposed to be 0 (base = 60hz) + offset value (default 0) = final refresh.

Please, let me know if you have any insights! I'm starting to think that maybe the lci proxy driver is the thing that's refusing anything other than 60hz.

How to realize the function of virtual monitor plug in/out ?

By a little modifying the demo of vmon.exe, I can implement plug in/out of virtual monitor(plug in -> plug out), but my problem is that I can't plug in again after plug out of virtual monitor(plug in -> plug out -> can not plug in), unless the vmon_funtion driver is re-disabled and enabled, how can I solve this problem?
The code is as follows ๏ผš

**vmon.exe**
if (dev_ctx->pDeviceInfo->plug_state == IOCTL_LJB_VMON_UNPLUG_MONITOR)
	{
		DeviceIoControl(
			dev_ctx->hDevice,
			IOCTL_LJB_VMON_UNPLUG_MONITOR,
			NULL,
			0,
			NULL,
			0,
			&bytes_returned,
			NULL
		);
	}
	else
	{
		io_ret = DeviceIoControl(
			dev_ctx->hDevice,
			//IOCTL_LJB_VMON_PLUGIN_MONITOR,
			IOCTL_LJB_VMON_PLUGIN_MONITOR,
			MyEDID,
			sizeof(MyEDID),
			NULL,
			0,
			&bytes_returned,
			NULL
		);
		if (!io_ret)
		{
			DBG_PRINT((__FUNCTION__": IOCTL_LJB_VMON_PLUGIN_MONITOR failed\n"));
			return;
		}
	}
**vmon_fuction.sys:**
case IOCTL_LJB_VMON_PLUGIN_MONITOR:
        if (input_buffer_length < 128)
        {
            LJB_VMON_Printf(dev_ctx, DBGLVL_ERROR,
                (__FUNCTION__
                ": input_buffer_length(%u) too small?\n",
                input_buffer_length
                ));
            ntStatus = STATUS_BUFFER_TOO_SMALL;
            break;
        }

        ntStatus = WdfRequestRetrieveInputBuffer(
            Request,
            128,
            &edid_block,
            NULL);

        if (!NT_SUCCESS(ntStatus))
        {
            LJB_VMON_Printf(dev_ctx, DBGLVL_ERROR,
                (__FUNCTION__
                ": output_buffer_length(%u) too small?\n",
                output_buffer_length
                ));
            break;
        }

        RtlCopyMemory(dev_ctx->EdidBlock, edid_block, 128);
        IoSetDeviceInterfaceState(
            &dev_ctx->lci_interface_path,
            TRUE);
        ntStatus = STATUS_SUCCESS;
        break;

    case IOCTL_LJB_VMON_UNPLUG_MONITOR:
        RtlZeroMemory(dev_ctx->EdidBlock, 128);
        IoSetDeviceInterfaceState(
            &dev_ctx->lci_interface_path,
            FALSE);
        ntStatus = STATUS_SUCCESS;
        break;

Windows on ARM, Support?

Please let us know when can we have an ARM64 driver for Windows on ARM. We can help you test we have Windows on Rasberry Pi setup. Please pursue it we at Windows on Rasberry Pi community will be glad to extend support in testing your drivers and tools for ARM64.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.