+ NON_DISCOVERABLE_PCI_DEVICE *Dev;\r
+ EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *DestDesc;\r
+ EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *SrcDesc;\r
+ EFI_STATUS Status;\r
+\r
+ if ((UINT32)Width > EfiPciIoWidthUint64) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ Dev = NON_DISCOVERABLE_PCI_DEVICE_FROM_PCI_IO(This);\r
+\r
+ Status = GetBarResource (Dev, DestBarIndex, &DestDesc);\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
+ if (DestOffset + (Count << (Width & 0x3)) > DestDesc->AddrLen) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+\r
+ Status = GetBarResource (Dev, SrcBarIndex, &SrcDesc);\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
+ if (SrcOffset + (Count << (Width & 0x3)) > SrcDesc->AddrLen) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+\r