Index: lib/drivers/libusb/hcd_controller.cpp =================================================================== --- lib/drivers/libusb/hcd_controller.cpp (revision 70555) +++ lib/drivers/libusb/hcd_controller.cpp (working copy) @@ -10,7 +10,7 @@ #include "libusb.h" -#define NDEBUG +//#define NDEBUG #include class CHCDController : public IHCDController, @@ -415,12 +415,19 @@ // start the hardware // Status = m_Hardware->PnpStart(RawResourceList, TranslatedResourceList); + + if (NT_SUCCESS(Status)) + { + // + // enable symbolic link + // + Status = SetSymbolicLink(TRUE); + } } - - // - // enable symbolic link - // - Status = SetSymbolicLink(TRUE); + else + { + Status = STATUS_UNSUCCESSFUL; + } } DPRINT("[%s] HandlePnp IRP_MN_START FDO: Status %x\n", m_USBType ,Status); Index: ntoskrnl/io/iomgr/iomgr.c =================================================================== --- ntoskrnl/io/iomgr/iomgr.c (revision 70555) +++ ntoskrnl/io/iomgr/iomgr.c (working copy) @@ -549,6 +549,14 @@ /* Call back drivers that asked for */ IopReinitializeBootDrivers(); + { + LARGE_INTEGER Timeout; + Timeout.QuadPart = 5000; + DPRINT1("Waiting %lu milliseconds\n", Timeout.LowPart); + Timeout.QuadPart *= -10000; // convert to 100 ns units (absolute) + KeDelayExecutionThread(KernelMode, FALSE, &Timeout); // perform the wait + } + /* Check if this was a ramdisk boot */ if (!_strnicmp(LoaderBlock->ArcBootDeviceName, "ramdisk(0)", 10)) {