From 5ecbbb6ebb411df612aeed8d5806baf2bde18b20 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Thu, 5 Jul 2007 22:06:47 +0000 Subject: [PATCH] Do not hack video driver, VBE driver works in windows xp ---------------------------------------------------------------- Fixed to detect few legazy bus types, fill the list for no PnP bus type in videprt/videoprt.c functions VideoPortInitialize svn path=/trunk/; revision=27413 --- reactos/drivers/video/miniport/vbe/vbemp.c | 2 +- reactos/drivers/video/miniport/vga/vgamp.c | 2 +- reactos/drivers/video/miniport/xboxvmp/xboxvmp.c | 2 +- reactos/drivers/video/videoprt/videoprt.c | 15 +++++++++++++++ 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/reactos/drivers/video/miniport/vbe/vbemp.c b/reactos/drivers/video/miniport/vbe/vbemp.c index 2f44a583421..61e34178db9 100644 --- a/reactos/drivers/video/miniport/vbe/vbemp.c +++ b/reactos/drivers/video/miniport/vbe/vbemp.c @@ -37,7 +37,7 @@ DriverEntry(IN PVOID Context1, IN PVOID Context2) VIDEO_HW_INITIALIZATION_DATA InitData; VideoPortZeroMemory(&InitData, sizeof(InitData)); - InitData.HwInitDataSize = SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA; + InitData.HwInitDataSize = sizeof(VIDEO_HW_INITIALIZATION_DATA); InitData.HwFindAdapter = VBEFindAdapter; InitData.HwInitialize = VBEInitialize; InitData.HwStartIO = VBEStartIO; diff --git a/reactos/drivers/video/miniport/vga/vgamp.c b/reactos/drivers/video/miniport/vga/vgamp.c index 7cdd9c98162..b9bc3981b67 100644 --- a/reactos/drivers/video/miniport/vga/vgamp.c +++ b/reactos/drivers/video/miniport/vga/vgamp.c @@ -31,7 +31,7 @@ DriverEntry(IN PVOID Context1, VideoPortZeroMemory(&InitData, sizeof InitData); - InitData.HwInitDataSize = SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA; + InitData.HwInitDataSize = sizeof(InitData); /* FIXME: Fill in InitData members */ InitData.StartingDeviceNumber = 0; diff --git a/reactos/drivers/video/miniport/xboxvmp/xboxvmp.c b/reactos/drivers/video/miniport/xboxvmp/xboxvmp.c index cf8372c023d..ecf25bc9e79 100644 --- a/reactos/drivers/video/miniport/xboxvmp/xboxvmp.c +++ b/reactos/drivers/video/miniport/xboxvmp/xboxvmp.c @@ -42,7 +42,7 @@ DriverEntry(IN PVOID Context1, IN PVOID Context2) VideoPortZeroMemory(&InitData, sizeof(InitData)); InitData.AdapterInterfaceType = PCIBus; - InitData.HwInitDataSize = SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA; + InitData.HwInitDataSize = sizeof(VIDEO_HW_INITIALIZATION_DATA); InitData.HwFindAdapter = XboxVmpFindAdapter; InitData.HwInitialize = XboxVmpInitialize; InitData.HwStartIO = XboxVmpStartIO; diff --git a/reactos/drivers/video/videoprt/videoprt.c b/reactos/drivers/video/videoprt/videoprt.c index 960390e9b3e..f55f8a0a7b9 100644 --- a/reactos/drivers/video/videoprt/videoprt.c +++ b/reactos/drivers/video/videoprt/videoprt.c @@ -713,6 +713,15 @@ VideoPortInitialize( return STATUS_UNSUCCESSFUL; } + /* add no PNP bus here, add more bus type if it need it */ + if ( (HwInitializationData->AdapterInterfaceType == 0) || + (HwInitializationData->AdapterInterfaceType == -1) ) + + { + DPRINT1("No PNP Videocard .\n"); + LegacyDetection = TRUE; + } + DriverObject->MajorFunction[IRP_MJ_CREATE] = IntVideoPortDispatchOpen; DriverObject->MajorFunction[IRP_MJ_CLOSE] = IntVideoPortDispatchClose; DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = IntVideoPortDispatchDeviceControl; @@ -727,6 +736,12 @@ VideoPortInitialize( if (LegacyDetection) { PDEVICE_OBJECT DeviceObject; + + if (HwInitializationData->HwInitDataSize != SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA) + { + /* power manger */ + DriverObject->MajorFunction[IRP_MJ_POWER] = IntVideoPortDispatchPower; + } Status = IntVideoPortCreateAdapterDeviceObject(DriverObject, DriverExtension, NULL, &DeviceObject); DPRINT("IntVideoPortCreateAdapterDeviceObject returned 0x%x\n", Status);