Jump to content
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble
Strawberry Orange Banana Lime Leaf Slate Sky Blueberry Grape Watermelon Chocolate Marble

MSFN is made available via donations, subscriptions and advertising revenue. The use of ad-blocking software hurts the site. Please disable ad-blocking software or set an exception for MSFN. Alternatively, register and become a site sponsor/subscriber and ads will be disabled automatically. 


andyle2k

WINPE UEFI and DPI Setings

Recommended Posts

Hi All,

 

I have a huge problem with WINPE booting in UEFI (x64) mode and the auto DPI scaling it performs.

 

I've tried setting up an Unattend.xml with the DPI settings but with the DPI element included, the whole XML is ignored. As soon as I remove the DPI setting the XML works fine.

 

Another approach I've tried is using the startnet.cmd to set the registry for FontDPI to 96 but that doesn't fix it either.

 

Does anybody know how to fix this or disable the DPI scaling altogether for WINPE? To be clear this is in WINPE not OOBE.

 

Booting the WINPE in x86 BIOS mode does not trigger the auto DPI scale.

 

Thank you very much.

Share this post


Link to post
Share on other sites

It is by design since WinPE4. You'll need to rewrite your GUI to handle the different scaling that may occur. This was the answer I got when I opened a support case with MS in 2013.

Here was my first topic about it (see also the Technet link for more info)

http://www.msfn.org/board/topic/162510-unable-to-set-resolution-in-winpe4/

Here is the challenge you may face while working with UEFI mode on a 4k display:

http://www.msfn.org/board/topic/173469-uefi-installation-on-a-4k-native-display/

Share this post


Link to post
Share on other sites

Yes the DPI setting is only for Windows itself, not setup/WinPE.

If you know the size of a US quarter, then you can see how a UEFI only tablet looks like with the Gimagex HTA that I have in my signature:

20150610_120927_zpsirxjobrm.jpg

While the text specified by the HTA scaled "appropriately" I can tell you that must custom imaging GUI (which is not shown) is super tiny. As long as this remains to be true, I will eventually have to learn how to program my GUI to scale as well. So I feel your pain.

Share this post


Link to post
Share on other sites

Do you know exactly WHEN WINPE sets the DPI settings? I'm thinking if we're able to set the FontDPI\LogPixels registry settings after it autosets the DPI settings but before it loads the display?

 

Also, if we can set the registry then "log out" of WINPE then log back in without a restart the new DPI settings should stick right? Anybody know how to log out of WINPE and back in? Projects like WIN8.1SE seem to be logging in and out.

 

Thanks.

Share this post


Link to post
Share on other sites

I am shocked by this; there must be a some way, even if it is heavy handed or hacky. I also attempted modifying the BCD store including the vga flag, novga flag, graphicsresolution string, etc... No effect.

 

 

 

Share this post


Link to post
Share on other sites

I'm actually looking into this again...

Ref: https://www.autoitscript.com/forum/topic/194443-checkbox-rendering-issue-on-certain-displays/

EDIT: in regards to my issue, mines is specifically dealing with an application that does not render properly on some DPI settings in WinPE 10, however this particular issue is not relevant to anything based on HTA which can be fixed.

NOTE: this does not help:
https://michlstechblog.info/blog/windows-pe-disable-autoscaling/

This is the next thing i will look at: https://chentiangemalc.wordpress.com/2017/05/22/force-dpi-scaling-for-configuration-manager-console/

Share this post


Link to post
Share on other sites

Using the Application Compatibility Toolkit is a pain! if you run it on Windows 7, it won't show the DPIUnaware option, but getting the ACT to run on Windows 10 is difficult. I had to install and reinstall it 3 times before it would open. Otherwise, it would just say that the program doesn't support the OS.

Even so, this method will not work for Windows PE, precisely because you can't install the database into WinPE without extensive work. You can't run sdbinst.exe from a mounted dir, because there are numerous dependencies missing. I may get back to it later, but debugging the dependencies may take more time than I am willing to invest currently.

Using the registry keys for compatibility do not seem to do anything in WinPE.
 

REG ADD "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /V "C:\Program Files(x86)\folder\app.exe" /T REG_SZ /D "~ DPIUNAWARE" /F

Var list:

"~ HIGHDPIAWARE" = Override high DPI scaling behavior (Application)

"~ DPIUNAWARE" = Override high DPI scaling behavior (System)

"~ GDIDPISCALING DPIUNAWARE" = Override high DPI scaling behavior (System Enhanced)

Back to the drawing board.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...