Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c:
preferred_mode->height = monitor->rc_monitor.bottom - monitor->rc_monitor.top;
for (i = 0; i < monitor->adapter->mode_count; ++i)
{
DEVMODEW *mode = &monitor->adapter->modes[i];
if (mode->dmPelsWidth == preferred_mode->width && mode->dmPelsHeight == preferred_mode->height
&& mode->dmDisplayFrequency > display_frequency)
display_frequency = mode->dmDisplayFrequency;
}
if (!display_frequency) display_frequency = 60;
preferred_mode->targetMode.targetVideoSignalInfo.vSyncFreq.Numerator = display_frequency;
preferred_mode->targetMode.targetVideoSignalInfo.vSyncFreq.Denominator = 1;
preferred_mode->targetMode.targetVideoSignalInfo.activeSize.cx = preferred_mode->width;
preferred_mode->targetMode.targetVideoSignalInfo.activeSize.cy = preferred_mode->height;
preferred_mode->targetMode.targetVideoSignalInfo.totalSize = preferred_mode->targetMode.targetVideoSignalInfo.activeSize;
You should also fill in other fields in DISPLAYCONFIG_VIDEO_SIGNAL_INFO with reasonable values instead of zeros.