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;
}
Status = ClassAddDevice(DriverObject, PortDeviceObject);
if (!NT_SUCCESS(Status))
/* Connect the port device object */
if (DriverExtension->ConnectMultiplePorts)
{
/* FIXME: Log the error */
DPRINT("ClassAddDevice() failed with status 0x%08lx\n", Status);
Status = ConnectPortDriver(PortDeviceObject, DriverExtension->MainClassDeviceObject);
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)