Author: fireball
Date: Tue Dec 12 15:18:17 2006
New Revision: 25129
URL:
http://svn.reactos.org/svn/reactos?rev=25129&view=rev
Log:
ChangeDisplaySettingsEx() can be called with NULL DeviceName. In this case, we should look
it up, instead of BSODing.
Right now, this case is fixed by substituting the value to a hardcoded one
"\\.\DISPLAY1" in case of NULL and call is made to store the values in
registry.
Modified:
trunk/reactos/subsystems/win32/win32k/objects/dc.c
Modified: trunk/reactos/subsystems/win32/win32k/objects/dc.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/win32k/ob…
==============================================================================
--- trunk/reactos/subsystems/win32/win32k/objects/dc.c (original)
+++ trunk/reactos/subsystems/win32/win32k/objects/dc.c Tue Dec 12 15:18:17 2006
@@ -2914,6 +2914,7 @@
UNICODE_STRING DeviceName;
UNICODE_STRING RegistryKey;
+ UNICODE_STRING InDeviceName;
OBJECT_ATTRIBUTES ObjectAttributes;
HANDLE DevInstRegKey;
ULONG NewValue;
@@ -2921,6 +2922,14 @@
DPRINT1("set CDS_UPDATEREGISTRY \n");
dwflags &= ~CDS_UPDATEREGISTRY;
+
+ /* Check if pDeviceName is NULL, we need to retrieve it */
+ if (pDeviceName == NULL)
+ {
+ /* FIXME: It is a hack, but there is no proper way right now */
+ RtlInitUnicodeString(&InDeviceName, L"\\\\.\\DISPLAY1");
+ pDeviceName = &InDeviceName;
+ }
Status = GetVideoDeviceName(&DeviceName, pDeviceName);
if (!NT_SUCCESS(Status))