PDEVMODEW pdm, pdmEnd;
PLDEVOBJ pldev;
- DPRINT1("EngpRegisterGraphicsDevice(%S)\n", pustrDeviceName->Buffer);
+ DPRINT("EngpRegisterGraphicsDevice(%wZ)\n", pustrDeviceName);
/* Allocate a GRAPHICS_DEVICE structure */
pGraphicsDevice = ExAllocatePoolWithTag(PagedPool,
&pDeviceObject);
if (!NT_SUCCESS(Status))
{
- DPRINT1("Could not open driver, 0x%lx\n", Status);
+ DPRINT1("Could not open driver %wZ, 0x%lx\n", pustrDeviceName, Status);
ExFreePoolWithTag(pGraphicsDevice, GDITAG_GDEVICE);
return NULL;
}
return pGraphicsDevice;
}
-BOOL
-InitVideo(
- PUNICODE_STRING pustrRegPath,
- FLONG flags)
+NTSTATUS
+NTAPI
+InitVideo()
{
ULONG iDevNum, iVGACompatible = -1, ulMaxObjectNumber = 0;
WCHAR awcDeviceName[20];
ULONG cbValue;
HKEY hkey;
- DPRINT1("----------------------------- InitVideo() -------------------------------\n");
+ DPRINT("----------------------------- InitVideo() -------------------------------\n");
+ /* Open the key for the boot command line */
Status = RegOpenKey(L"\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Control", &hkey);
if (NT_SUCCESS(Status))
{
if (!NT_SUCCESS(Status))
{
DPRINT1("Could not open device registry key!\n");
- ASSERT(FALSE);
+ return Status;
}
/* Read the name of the VGA adapter */
continue;
}
+ /* Initialize the driver for this device */
pGraphicsDevice = InitDisplayDriver(awcDeviceName, awcBuffer);
+ if (!pGraphicsDevice) continue;
/* Check if this is the VGA adapter */
if (iDevNum == iVGACompatible)
gpPrimaryGraphicsDevice = pGraphicsDevice;
}
+ /* Close the device map registry key */
ZwClose(hkey);
+ /* Check if we had any success */
+ if (!gpPrimaryGraphicsDevice)
+ {
+ DPRINT1("No usable display driver was found.\n");
+ return STATUS_UNSUCCESSFUL;
+ }
+
if (gbBaseVideo)
{
if (gpVgaGraphicsDevice)
return STATUS_SUCCESS;
}
-BOOL
-InitVideo(ULONG);
+NTSTATUS
+NTAPI
+InitVideo();
NTSTATUS
NTAPI
HANDLE hPowerRequestEvent,
HANDLE hMediaRequestEvent)
{
+ NTSTATUS Status;
+
// Set W32PF_Flags |= (W32PF_READSCREENACCESSGRANTED | W32PF_IOWINSTA)
// Create Object Directory,,, Looks like create workstation. "\\Windows\\WindowStations"
// Create Event for Diconnect Desktop.
- InitVideo(0);
-// Initialize Video.
+
+ /* Initialize Video. */
+ Status = InitVideo();
+ if (!NT_SUCCESS(Status)) return Status;
+
// {
// DrvInitConsole.
// DrvChangeDisplaySettings.