Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

UNDOCUMENTED Windows API

Some information on the undocumented Windows API I have discovered. These have all been discovered using Ghidra (static analysis), and WinDBG (dynamic analysis)

DisplayConfigGetDeviceInfo

  1. DisplayConfigGetDeviceInfo(-3) or DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_TYPE_UNDOC::DISPLAYCONFIG_DEVICE_INFO_GET_DPI_SCALE) Get DPI scaling information for a display.
  • Minimum DPI scaling
  • Maximum DPI scaling
  • Currently applied DPI scaling value
  • Recommended DPI scaling value

REFER(1): https://github.com/lihas/windows-DPI-scaling-sample/tree/master
REFER(2): https://stackoverflow.com/questions/35233182/how-can-i-change-windows-10-display-scaling-programmatically-using-c-sharp

  1. DisplayConfigGetDeviceInfo(-4) or DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_TYPE_UNDOC::DISPLAYCONFIG_DEVICE_INFO_SET_DPI_SCALE) Set current DPI scaling value for a display

REFER(1): https://github.com/lihas/windows-DPI-scaling-sample/tree/master
REFER(2): https://stackoverflow.com/questions/35233182/how-can-i-change-windows-10-display-scaling-programmatically-using-c-sharp

  1. DisplayConfigGetDeviceInfo(-7) or DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_TYPE_UNDOC::DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_BRIGHTNESS_INFO) Get monitor brightness info
  • Brightness range supported in nits
  • min luminance
  • max luminance

REFER: Windows_Graphics!Windows::Devices::Display::DisplayMonitor::RuntimeClassInitialize (Windows.Graphics.dll)

  1. DisplayConfigGetDeviceInfo(-7) or DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_TYPE_UNDOC::DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_INTERNAL_INFO) This is an alias for DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_BRIGHTNESS_INFO as the API returns info more than just brightness. Info other than brightness:
  • Display tech
  • Native Height
  • Native Width
  • Physical Width in mm
  • Physical Height in mm

REFER: Windows_Graphics!Windows::Devices::Display::DisplayMonitor::RuntimeClassInitialize (Windows.Graphics.dll)

  1. DisplayConfigGetDeviceInfo(-8) or DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_TYPE_UNDOC::DISPLAYCONFIG_DEVICE_INFO_GET_MONITOR_EDID) Get display edid.
  • Edid in 1280 byte buffer
  • Length of returned EDID block in bytes

REFER: Windows_Graphics!Windows::Devices::Display::DisplayMonitor::RuntimeClassInitialize (Windows.Graphics.dll)

  1. DisplayConfigGetDeviceInfo(-13) or DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_TYPE_UNDOC::DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_INFO) Get target info.
  • Output technology
  • Usage: Standard, Head mounted, Special use
  • Virtual mode disabled
  • Virtual topology disabled
  • Virtual target mode disabled

REFER: Windows_Graphics!Windows::Devices::Display::DisplayMonitor::RuntimeClassInitialize (Windows.Graphics.dll)

  1. DisplayConfigGetDeviceInfo(-15) or DisplayConfigGetDeviceInfo(DISPLAYCONFIG_DEVICE_INFO_TYPE_UNDOC::DISPLAYCONFIG_DEVICE_INFO_GET_DISPLAY_ID_DATA) Get display ID data. Perhaps this is used in 2 steps, first to get buffer size, and then calling the api by passing buffer of required length.

REFER: Windows_Graphics!Windows::Devices::Display::DisplayMonitor::RuntimeClassInitialize (Windows.Graphics.dll)

About

Some information on the undocumented Windows API I have discovered.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages