Dynamic window resize for Virtualbox

Activity

CR-66 15

Keyboard shortcuts  
  • Summarize the review outcomes (optional)
     
    #permalink

    Details

    Warning: no files are visible, they have all been filtered.
    Participant Role Time Spent Comments Latest Comment
    Author 1h 21m 2 These were a remnant from my early tries. Weren't suppose...
    Moderator 54m 6 Miniport, yes. But that is not enough. win32k needs to kn...
    Reviewer - 100% reviewed 52m 7 There is theorically nothing stopping you "launching" a m...
    Reviewer - Complete 6m    
    Total   3h 13m 15  
    #permalink

    Objectives

    Timo asked for a Crucible review, well, here it is!

    https://jira.reactos.org/browse/CORE-6742

    Branches in review

    #permalink

    Issues Raised From Comments

    Key Summary State Assignee
    #permalink

    General Comments

    zefklop

    I invited myself in the review, hope nobody minds :-p I really like the tone...

    I invited myself in the review, hope nobody minds :-p

    I really like the tone of it all, but I have a comment here: the mirror driver code sample seems to suggest that the whole display device list gets updated. I can't recall the exact condition for it though, but it implied a call to EnumDisplaySettings, much like what your code currently does.

    I think we can commit the thing as it is, but it has to be remembered if one wants to use/support mirroring drivers (which we will eventually want).

    Timo Kreuzer

    So maybe it should refactored it into a function that updates all modes from ...

    So maybe it should refactored it into a function that updates all modes from all DLLs and call this from both EngpRegisterGraphicsDevice and PDEVOBJ_vRefreshModeList

    zefklop

    Yes. Basically, when you start the miniport driver service, the win32k displa...

    Yes. Basically, when you start the miniport driver service, the win32k display driver list doesn't get updated until you call EnumDisplaySettings. If you fail to do so, you will never be able to call CreateDC("YourDeviceNameHere"). The whole thing might then be:

    • Start the miniport driver.
    • Call EnumDisplaySettings (or EnumDisplayDevices ? Can't remember) so that win32k updates its device lists/loads the display DLLs
    • Call ChangeDisplaySettings("YourDeviceNameHere")


    Then you might be able to create a DC for your device.
    All of this can be pretty useful for further development of printing support (cough) or developing a test suite for win32k eng interface / videoprt.

    Timo Kreuzer

    Well the display driver is asked for the modes like this on Windows: DrvGetMo...

    Well the display driver is asked for the modes like this on Windows:
    DrvGetModes: (ask for size?)
    f9bdc9a0 bf8ba3e0 8163ac68 00000000 00000000 0xbfabaf90
    f9bdc9c4 bf8bd52d e14c6570 8163ac68 f9bdc9ec win32k!ldevGetDriverModes+0x39
    f9bdc9f4 bf8b8cde 00000000 00000000 f9bdcbf0 win32k!DrvBuildDevmodeList+0xa4
    f9bdca7c bf8b3221 e13d5f80 f9bdcb0c f9bdcad4 win32k!DrvProbeAndCaptureDevmode+0x408
    f9bdcbf4 bf8b9423 00000000 00000000 00000001 win32k!DrvCreateMDEV+0x42d
    f9bdcce8 bf8b624e 00000000 00000000 00000000 win32k!DrvChangeDisplaySettings+0x2e5
    f9bdcd28 bf8b61bc 00000001 f9bdcd64 0015fd98 win32k!InitVideo+0x3e
    f9bdcd48 bf8b71fe f9bdcd64 804de7ec 00050000 win32k!UserInitialize+0x14d
    f9bdcd50 804de7ec 00050000 00000058 0000005c win32k!NtUserInitialize+0x87

    zefklop

    I was speaking about launching display drivers from user mode without having ...

    I was speaking about launching display drivers from user mode without having the need to reboot. Typically what is (or should be ?) done with printer drivers and virtual device drivers.

    Timo Kreuzer

    AFAIK, on WIN2K3/XP you can only "launch" a display driver from user mode, if...

    AFAIK, on WIN2K3/XP you can only "launch" a display driver from user mode, if it is already installed. There is a MS tool for display driver developers that does this by switching to the VGA driver and back to the "normal" driver, thus reloading it to avoid a reboot. But it always requires the driver to be already installed. So loading a new driver without reboot does not work. Which is sad, because it makes things like a kernel mode test framework require the test-driver to be installed. Not sure about printer drivers, but for kernel mode printer drivers it is probably the same.

    zefklop

    There is theorically nothing stopping you "launching" a miniport.sys from the...

    There is theorically nothing stopping you "launching" a miniport.sys from the SC manager like we do for kmtest.sys

    Although, I agree with you on this point, you'd have to install the .inf first. But once this is done, it's as good as it can get.

    Timo Kreuzer

    Miniport, yes. But that is not enough. win32k needs to know about it. And tha...

    Miniport, yes. But that is not enough. win32k needs to know about it. And that happens on boot.

    /win32ss/gdi/eng/device.h Changed  
    Open in IDE #permalink
    /win32ss/gdi/eng/pdevobj.c Changed   7
    Open in IDE #permalink
    /win32ss/user/ntuser/display.c Changed  
    Open in IDE #permalink

    Review updated: Reload | Ignore | Collapse

    You cannot reload the review while writing a comment.

    Log time against