Fix incorrect logic in IntVideoPortSetupInterrupt and add comment.

svn path=/trunk/; revision=33717
This commit is contained in:
Filip Navara 2008-05-26 18:32:40 +00:00
parent d543aa9e03
commit e5b4190710

View file

@ -48,13 +48,17 @@ IntVideoPortSetupInterrupt(
DeviceExtension = (PVIDEO_PORT_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
if (ConfigInfo->BusInterruptVector == 0)
ConfigInfo->BusInterruptVector = DeviceExtension->InterruptVector;
/*
* 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 (ConfigInfo->BusInterruptLevel == 0)
ConfigInfo->BusInterruptLevel = DeviceExtension->InterruptLevel;
if (DriverExtension->InitializationData.HwInterrupt != NULL)
if (DriverExtension->InitializationData.HwInterrupt != NULL &&
ConfigInfo->BusInterruptLevel != 0 &&
ConfigInfo->BusInterruptVector != 0)
{
ULONG InterruptVector;
KIRQL Irql;