+\r
+/**\r
+ Get the image file buffer data and buffer size by its device path. \r
+ \r
+ Access the file either from a firmware volume, from a file system interface, \r
+ or from the load file interface.\r
+ \r
+ Allocate memory to store the found image. The caller is responsible to free memory.\r
+\r
+ If FilePath is NULL, then NULL is returned.\r
+ If FileSize is NULL, then NULL is returned.\r
+ If AuthenticationStatus is NULL, then NULL is returned.\r
+\r
+ @param[in] BootPolicy The policy for Open Image File.If TRUE, \r
+ indicates that the request originates from \r
+ the boot manager, and that the boot manager is\r
+ attempting to load FilePath as a boot selection. \r
+ If FALSE, then FilePath must match an exact \r
+ file to be loaded.\r
+ @param[in] FilePath Pointer to the device path of the file that is abstracted to\r
+ the file buffer.\r
+ @param[out] FileSize Pointer to the size of the abstracted file buffer.\r
+ @param[out] AuthenticationStatus Pointer to the authentication status.\r
+\r
+ @retval NULL FilePath is NULL, or FileSize is NULL, or AuthenticationStatus is NULL, or the file can't be found.\r
+ @retval other The abstracted file buffer. The caller is responsible to free memory.\r
+**/\r
+VOID *\r
+EFIAPI\r
+GetFileBufferByFilePath (\r
+ IN BOOLEAN BootPolicy,\r
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *FilePath,\r
+ OUT UINTN *FileSize,\r
+ OUT UINT32 *AuthenticationStatus\r
+ );\r
+\r
+/**\r
+ Searches all the available firmware volumes and returns the file device path of first matching\r
+ FFS section.\r
+\r
+ This function searches all the firmware volumes for FFS files with an FFS filename specified by NameGuid.\r
+ The order that the firmware volumes is searched is not deterministic. For each FFS file found a search\r
+ is made for FFS sections of type SectionType.\r
+\r
+ If SectionType is EFI_SECTION_TE, and the search with an FFS file fails,\r
+ the search will be retried with a section type of EFI_SECTION_PE32.\r
+ This function must be called with a TPL <= TPL_NOTIFY.\r
+\r
+ If NameGuid is NULL, then ASSERT().\r
+\r
+ @param NameGuid A pointer to to the FFS filename GUID to search for\r
+ within any of the firmware volumes in the platform.\r
+ @param SectionType Indicates the FFS section type to search for within\r
+ the FFS file specified by NameGuid.\r
+ @param SectionInstance Indicates which section instance within the FFS file\r
+ specified by NameGuid to retrieve.\r
+ @param FvFileDevicePath Device path for the target FFS\r
+ file.\r
+\r
+ @retval EFI_SUCCESS The specified file device path of FFS section was returned.\r
+ @retval EFI_NOT_FOUND The specified file device path of FFS section could not be found.\r
+ @retval EFI_DEVICE_ERROR The FFS section could not be retrieves due to a\r
+ device error.\r
+ @retval EFI_ACCESS_DENIED The FFS section could not be retrieves because the\r
+ firmware volume that contains the matching FFS section does not\r
+ allow reads.\r
+ @retval EFI_INVALID_PARAMETER FvFileDevicePath is NULL.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+GetFileDevicePathFromAnyFv (\r
+ IN CONST EFI_GUID *NameGuid,\r
+ IN EFI_SECTION_TYPE SectionType,\r
+ IN UINTN SectionInstance,\r
+ OUT EFI_DEVICE_PATH_PROTOCOL **FvFileDevicePath\r
+ );\r
+\r