Xbox hack added, so two exactly the same PCI devices (OHCI controllers) have different locations. Without it USB drivers won't work at all.
Modified: trunk/reactos/drivers/bus/pci/pci.c

Modified: trunk/reactos/drivers/bus/pci/pci.c
--- trunk/reactos/drivers/bus/pci/pci.c	2005-08-12 20:21:22 UTC (rev 17351)
+++ trunk/reactos/drivers/bus/pci/pci.c	2005-08-12 20:29:01 UTC (rev 17352)
@@ -296,7 +296,27 @@
 
   return TRUE;
 #endif
-  return PciCreateUnicodeString(InstanceID, L"0000", PagedPool);
+  WCHAR Buffer[256];
+
+  swprintf(Buffer,
+           L"PCI\\VEN_%04X&DEV_%04X&SUBSYS_%08X&REV_%02X",
+           Device->PciConfig.VendorID,
+           Device->PciConfig.DeviceID,
+           (Device->PciConfig.u.type0.SubSystemID << 16) +
+           Device->PciConfig.u.type0.SubVendorID,
+           Device->PciConfig.RevisionID);
+
+  // XBOX HACK
+  if (!wcscmp(L"PCI\\VEN_10DE&DEV_01C2&SUBSYS_00000000&REV_D4", Buffer))
+  {
+     //DPRINT("xbox ohci controler found at bus 0x%lX, dev num %d, func num %d\n", Device->BusNumber, Device->SlotNumber.u.bits.DeviceNumber, Device->SlotNumber.u.bits.FunctionNumber);
+	 if (Device->SlotNumber.u.bits.DeviceNumber == 2)
+       return PciCreateUnicodeString(InstanceID, L"0000", PagedPool);
+	 else
+       return PciCreateUnicodeString(InstanceID, L"0001", PagedPool);
+  }
+  else
+	return PciCreateUnicodeString(InstanceID, L"0000", PagedPool);
 }