Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c:
- LIST_FOR_EACH_ENTRY( adapter, &adapters, struct adapter, entry )
- {
if (!adapter->mode_count) continue;
mode->dmSize = sizeof(DEVMODEW);
if (devmode && !wcsicmp( devname, adapter->dev.device_name ))
memcpy( &mode->dmFields, &devmode->dmFields, devmode->dmSize - offsetof(DEVMODEW, dmFields) );
else
{
if (!devname) ret = read_registry_settings( adapter->config_key, mode );
else ret = user_driver->pGetCurrentDisplaySettings( adapter->dev.device_name, mode );
if (!ret) goto done;
}
if (!(full = find_display_mode( adapter->modes, mode ))) goto done;
This call to find_display_mode() is new. What's the purpose of this call here? I assume you did it to verify the display mode from the registry is valid. In that case, you should call it only for registry modes. The copying of dmDriverExtra also seems redundant now that you always call get_full_mode() in the driver backends.