Index: ntuser/display.c =================================================================== --- win32ss/user/ntuser/display.c (revision 74398) +++ win32ss/user/ntuser/display.c (working copy) @@ -638,6 +638,15 @@ { /* Get the current settings */ Status = UserEnumCurrentDisplaySettings(pustrDevice, &pdm); + if (NT_SUCCESS(Status)) + { + ERR("UserEnumCurrentDisplaySettings returned (%lx) %lux%lu@%lu\n", + pdm->dmFields, pdm->dmPelsWidth, pdm->dmPelsHeight, pdm->dmDisplayFrequency); + } + else + { + ERR("UserEnumCurrentDisplaySettings failed with 0x%lx\n", Status); + } } else { Index: user32/misc/display.c =================================================================== --- win32ss/user/user32/misc/display.c (revision 74398) +++ win32ss/user/user32/misc/display.c (working copy) @@ -223,6 +223,8 @@ lpExtendedDevMode->dmDriverExtra = lpDevMode->dmDriverExtra; Status = NtUserEnumDisplaySettings(pusDeviceName, iModeNum, lpExtendedDevMode, dwFlags); + ERR("NtUserEnumDisplaySettings(%wZ, %ld, %p[dmSize %u, dmDriverExtra %u], 0x%lx) returned %lx\n", + pusDeviceName, iModeNum, lpDevMode, lpDevMode->dmSize, lpDevMode->dmDriverExtra, dwFlags, Status); if (pusDeviceName) RtlFreeUnicodeString(&usDeviceName); @@ -232,6 +234,10 @@ /* Store old structure size */ WORD OldSize = lpDevMode->dmSize; + ERR("EnumDisplaySettingsExA returning (%lx) %lux%lx@%lu for [dmSize %u, dmDriverExtra %u]/[dmSize %u, dmDriverExtra %u]\n", + lpExtendedDevMode->dmFields, lpExtendedDevMode->dmPelsWidth, lpExtendedDevMode->dmPelsHeight, lpExtendedDevMode->dmDisplayFrequency, + lpDevMode->dmSize, lpDevMode->dmDriverExtra, lpExtendedDevMode->dmSize, lpExtendedDevMode->dmDriverExtra); + #define COPYS(f,len) WideCharToMultiByte(CP_THREAD_ACP, 0, lpExtendedDevMode->f, len, (LPSTR)lpDevMode->f, len, NULL, NULL) #define COPYN(f) lpDevMode->f = lpExtendedDevMode->f @@ -288,7 +294,8 @@ lpDevMode->dmDriverExtra = lpExtendedDevMode->dmDriverExtra; /* Copy extra data */ - RtlCopyMemory(lpDevMode + OldSize, lpExtendedDevMode + 1, lpDevMode->dmDriverExtra); + ERR("EnumDisplaySettingsExA: Copying %lu bytes driver extra\n", lpDevMode->dmDriverExtra); + RtlCopyMemory((PUCHAR)lpDevMode + OldSize, lpExtendedDevMode + 1, lpDevMode->dmDriverExtra); } /* If the size of source structure is less, than used, we clean unsupported flags */ @@ -361,11 +368,17 @@ lpExtendedDevMode->dmDriverExtra = lpDevMode->dmDriverExtra; Status = NtUserEnumDisplaySettings(pusDeviceName, iModeNum, lpExtendedDevMode, dwFlags); + ERR("NtUserEnumDisplaySettings(%wZ, %ld, %p[dmSize %u, dmDriverExtra %u], 0x%lx) returned %lx\n", + pusDeviceName, iModeNum, lpDevMode, lpDevMode->dmSize, lpDevMode->dmDriverExtra, dwFlags, Status); if (NT_SUCCESS(Status)) { /* Store old structure size */ WORD OldSize = lpDevMode->dmSize; + ERR("EnumDisplaySettingsExW returning (%lx) %lux%lx@%lu for [dmSize %u, dmDriverExtra %u]/[dmSize %u, dmDriverExtra %u]\n", + lpExtendedDevMode->dmFields, lpExtendedDevMode->dmPelsWidth, lpExtendedDevMode->dmPelsHeight, lpExtendedDevMode->dmDisplayFrequency, + lpDevMode->dmSize, lpDevMode->dmDriverExtra, lpExtendedDevMode->dmSize, lpExtendedDevMode->dmDriverExtra); + /* Copy general data */ RtlCopyMemory(lpDevMode, lpExtendedDevMode, OldSize); @@ -380,7 +393,8 @@ lpDevMode->dmDriverExtra = lpExtendedDevMode->dmDriverExtra; /* Copy extra data */ - RtlCopyMemory(lpDevMode + OldSize, lpExtendedDevMode + 1, lpDevMode->dmDriverExtra); + ERR("EnumDisplaySettingsExW: Copying %lu bytes driver extra\n", lpDevMode->dmDriverExtra); + RtlCopyMemory((PUCHAR)lpDevMode + OldSize, lpExtendedDevMode + 1, lpDevMode->dmDriverExtra); } /* If the size of source structure is less, than used, we clean unsupported flags */