Fix incorrect logic in IntVideoPortSetupInterrupt and add comment.
[reactos.git] / reactos / drivers / video / videoprt / interrupt.c
index 06407aa..6dd8e0f 100644 (file)
@@ -48,13 +48,17 @@ IntVideoPortSetupInterrupt(
 
    DeviceExtension = (PVIDEO_PORT_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
 
-   if (ConfigInfo->BusInterruptVector == 0)
-      ConfigInfo->BusInterruptVector = DeviceExtension->InterruptVector;
-
-   if (ConfigInfo->BusInterruptLevel == 0)
-      ConfigInfo->BusInterruptLevel = DeviceExtension->InterruptLevel;
-
-   if (DriverExtension->InitializationData.HwInterrupt != NULL)
+   /*
+    * MSDN documentation for VIDEO_PORT_CONFIG_INFO states: "If a miniport driver's
+    * HwVidFindAdapter function finds that the video adapter does not generate
+    * interrupts or that it cannot determine a valid interrupt vector/level for
+    * the adapter, HwVidFindAdapter should set both BusInterruptVector and
+    * BusInterruptLevel to zero.
+    */
+
+   if (DriverExtension->InitializationData.HwInterrupt != NULL &&
+       ConfigInfo->BusInterruptLevel != 0 &&
+       ConfigInfo->BusInterruptVector != 0)
    {
       ULONG InterruptVector;
       KIRQL Irql;