Revert simplification of SearchForLegacyDrivers done in r21188, because it breaks bootcd

svn path=/trunk/; revision=21195
This commit is contained in:
Hervé Poussineau 2006-02-26 12:14:48 +00:00
parent d5975704d6
commit 49da356967

View file

@ -747,11 +747,33 @@ SearchForLegacyDrivers(
continue; continue;
} }
Status = ClassAddDevice(DriverObject, PortDeviceObject); /* Connect the port device object */
if (!NT_SUCCESS(Status)) if (DriverExtension->ConnectMultiplePorts)
{ {
/* FIXME: Log the error */ Status = ConnectPortDriver(PortDeviceObject, DriverExtension->MainClassDeviceObject);
DPRINT("ClassAddDevice() failed with status 0x%08lx\n", Status); if (!NT_SUCCESS(Status))
{
/* FIXME: Log the error */
DPRINT("ConnectPortDriver() failed with status 0x%08lx\n", Status);
}
}
else
{
PDEVICE_OBJECT ClassDO;
Status = CreateClassDeviceObject(DriverObject, &ClassDO);
if (!NT_SUCCESS(Status))
{
/* FIXME: Log the error */
DPRINT("CreatePointerClassDeviceObject() failed with status 0x%08lx\n", Status);
continue;
}
Status = ConnectPortDriver(PortDeviceObject, ClassDO);
if (!NT_SUCCESS(Status))
{
/* FIXME: Log the error */
DPRINT("ConnectPortDriver() failed with status 0x%08lx\n", Status);
IoDeleteDevice(ClassDO);
}
} }
} }
if (Status == STATUS_NO_MORE_ENTRIES) if (Status == STATUS_NO_MORE_ENTRIES)