static BOOL FASTCALL
IntPrepareDriver()
{
- PGD_ENABLEDRIVER GDEnableDriver;
+ PFN_DrvEnableDriver GDEnableDriver;
DRVENABLEDATA DED;
UNICODE_STRING DriverFileNames;
PWSTR CurrentName;
HS_DDI_MAX,
PrimarySurface.FillPatterns,
sizeof(PrimarySurface.GDIInfo),
- (ULONG *) &PrimarySurface.GDIInfo,
+ &PrimarySurface.GDIInfo,
sizeof(PrimarySurface.DevInfo),
&PrimarySurface.DevInfo,
NULL,
HS_DDI_MAX,
PrimarySurface.FillPatterns,
sizeof(PrimarySurface.GDIInfo),
- (ULONG *) &PrimarySurface.GDIInfo,
+ &PrimarySurface.GDIInfo,
sizeof(PrimarySurface.DevInfo),
&PrimarySurface.DevInfo,
NULL,
gpsi->ptCursor.x = (SurfaceRect.right - SurfaceRect.left) / 2;
gpsi->ptCursor.y = (SurfaceRect.bottom - SurfaceRect.top) / 2;
+ /* Give the PDEV a MovePointer function */
+ PrimarySurface.pfnMovePointer = PrimarySurface.DriverFunctions.MovePointer;
+ if (!PrimarySurface.pfnMovePointer)
+ PrimarySurface.pfnMovePointer = EngMovePointer;
+
EngUnlockSurface(SurfObj);
co_IntShowDesktop(IntGetActiveDesktop(), SurfSize.cx, SurfSize.cy);
BOOLEAN NoReset = FALSE;
BOOLEAN Reset = FALSE;
BOOLEAN SetPrimary = FALSE;
- LONG Ret=0;
+ LONG Ret = DISP_CHANGE_SUCCESSFUL;
NTSTATUS Status ;
DPRINT1("display flags : %x\n",dwflags);
{
/* Dynamically change graphics mode */
DPRINT1("flag 0 UNIMPLEMENTED\n");
+ SetLastWin32Error(ERROR_CALL_NOT_IMPLEMENTED);
return DISP_CHANGE_FAILED;
}
if ((dwflags & CDS_TEST) == CDS_TEST)
{
- /* Test reslution */
+ /* Test resolution */
dwflags &= ~CDS_TEST;
- DPRINT1("flag CDS_TEST UNIMPLEMENTED\n");
- Ret = DISP_CHANGE_FAILED;
+ Status = IntEnumDisplaySettings(pDeviceName, ENUM_REGISTRY_SETTINGS, DevMode, 0);
+ if (!NT_SUCCESS(Status))
+ Ret = DISP_CHANGE_BADMODE;
+ return Ret;
}
if ((dwflags & CDS_FULLSCREEN) == CDS_FULLSCREEN)
{
DPRINT1("flag CDS_VIDEOPARAMETERS UNIMPLEMENTED\n");
Ret = DISP_CHANGE_FAILED;
+ SetLastWin32Error(ERROR_CALL_NOT_IMPLEMENTED);
}
}
Status = ZwSetValueKey(DevInstRegKey, &RegistryKey, 0, REG_DWORD, &NewValue, sizeof(NewValue));
}
+ if (NT_SUCCESS(Status) && DevMode->dmFields & DM_DISPLAYFREQUENCY)
+ {
+ RtlInitUnicodeString(&RegistryKey, L"DefaultSettings.VRefresh");
+ NewValue = DevMode->dmDisplayFrequency;
+ Status = ZwSetValueKey(DevInstRegKey, &RegistryKey, 0, REG_DWORD, &NewValue, sizeof(NewValue));
+ }
+
ZwClose(DevInstRegKey);
if (NT_SUCCESS(Status))
Ret = DISP_CHANGE_RESTART;
if (dwflags != 0)
Ret = DISP_CHANGE_BADFLAGS;
+ DPRINT("IntChangeDisplaySettings returning %x\n", Ret);
return Ret;
}
CurrentName += wcslen(CurrentName) + 1)
{
INT i;
- PGD_ENABLEDRIVER GDEnableDriver;
- PGD_GETMODES GetModes = NULL;
+ PFN_DrvEnableDriver GDEnableDriver;
+ PFN_DrvGetModes GetModes = NULL;
INT SizeNeeded, SizeUsed;
/* Get the DDI driver's entry point */
if (DrvFn->iFunc == INDEX_DrvGetModes)
{
- GetModes = (PGD_GETMODES)DrvFn->pfn;
+ GetModes = (PFN_DrvGetModes)DrvFn->pfn;
break;
}
}