Do not hack video driver, VBE driver works in windows xp
authorMagnus Olsen <magnus@greatlord.com>
Thu, 5 Jul 2007 22:06:47 +0000 (22:06 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Thu, 5 Jul 2007 22:06:47 +0000 (22:06 +0000)
----------------------------------------------------------------
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
reactos/drivers/video/miniport/vga/vgamp.c
reactos/drivers/video/miniport/xboxvmp/xboxvmp.c
reactos/drivers/video/videoprt/videoprt.c

index 2f44a58..61e3417 100644 (file)
@@ -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;
index 7cdd9c9..b9bc398 100644 (file)
@@ -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;
 
index cf8372c..ecf25bc 100644 (file)
@@ -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;
index 960390e..f55f8a0 100644 (file)
@@ -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);