/* Start to manage all the PCI devices it found previously under the entire host bridge. */
EFI_STATUS StartPciDevices(IN EFI_HANDLE Controller)
/* Start to manage all the PCI devices it found previously under the entire host bridge. */
EFI_STATUS StartPciDevices(IN EFI_HANDLE Controller)
{
  PCI_IO_DEVICE  *RootBridge;
  EFI_HANDLE     ThisHostBridge;
  LIST_ENTRY     *CurrentLink;
  RootBridge = GetRootBridgeByHandle (Controller);
  ASSERT (RootBridge != NULL);
  ThisHostBridge = RootBridge->PciRootBridgeIo->ParentHandle;
  CurrentLink = mPciDevicePool.ForwardLink;
  while (CurrentLink != NULL && CurrentLink != &mPciDevicePool) {
    RootBridge = PCI_IO_DEVICE_FROM_LINK (CurrentLink);
    if (RootBridge->PciRootBridgeIo->ParentHandle == ThisHostBridge) {
      StartPciDevicesOnBridge (
        RootBridge->Handle,
        RootBridge,
        NULL,
        NULL,
        NULL
        );
    }
    CurrentLink = CurrentLink->ForwardLink;
  }
  return EFI_SUCCESS;
}