/* Find a file from its absolute path on an UDF volume. */
EFI_STATUS GetFileSize(IN EFI_BLOCK_IO_PROTOCOL *BlockIo, IN EFI_DISK_IO_PROTOCOL *DiskIo, IN UDF_VOLUME_INFO *Volume, IN UDF_FILE_INFO *File, OUT UINT64 *Size)
/* Find a file from its absolute path on an UDF volume. */
EFI_STATUS GetFileSize(IN EFI_BLOCK_IO_PROTOCOL *BlockIo, IN EFI_DISK_IO_PROTOCOL *DiskIo, IN UDF_VOLUME_INFO *Volume, IN UDF_FILE_INFO *File, OUT UINT64 *Size)
{
  EFI_STATUS          Status;
  UDF_READ_FILE_INFO  ReadFileInfo;
  ReadFileInfo.Flags = ReadFileGetFileSize;
  Status = ReadFile (
             BlockIo,
             DiskIo,
             Volume,
             &File->FileIdentifierDesc->Icb,
             File->FileEntry,
             &ReadFileInfo
             );
  if (EFI_ERROR (Status)) {
    return Status;
  }
  *Size = ReadFileInfo.ReadLength;
  return EFI_SUCCESS;
}