This is not a direct answer to the question before "Background" but points to an alternative solution for creating loader entries for booting two (and more) Windows Vista and later OS's.
Please see also my second answer below about critic on terminology used in Visual BCD.
No guids, devices, objects, elements and blah, blah, blah.
My Background (skip if not interested and go to solution below):
I have implemented Visual BCD Editor.
During the implementation process I had to read all available sources on bcdedit and WMI BCD Provider interface (programming interface, can be used with C++, C#).
The documentation from Microsoft is really poor.
In the BCD there are objects (loaders, settings, device elements).
There is no documentation about the connections between objects despite there are dependencies.
There are more than 140 (!) elements (properties) of BCD objects in Windows 7.
I do not know the meaning of some elements - there is simply no documentation.
In Windows 8 there are new elements - I guess the total number now is approaching 180 (!!).
No documentation.
On the other hand there are two very powerful utilities for manipulating the BCD:
bcdboot and reagentc.
bcdboot - creates/fixes default loader also BCD and boot environment as a whole !
reagentc - installs/deinstalls recovery environment (winre.wim)
Both tools are not very well documented also.
Alternative solution:
There is almost no need of bcdedit as using only bcdboot you can create loaders for Windows Vista and later Windows OS's - you create loader for earliest OS, than for the latest and voila you have created the boot environment for a dual/multi boot system:
Assuming you are in Windows 8:
1. bcdboot f:\windows (this maps to Windows 7 as on picture in question)
2. bcdboot c:\windows (this maps to Windows 8)
Done !
Base Microsoft rule for boot process:
Boot environment (and BCD) should be always on [first disk + active partition].
(on picture - Disk 2 => First disk in BIOS boot sequence !)
Last but not least there is the bootsect utility for writing MBR and PBR (master and partition boot record) - now standard in Windows 8 (was available only in WinRE earlier).
So using only bootsect and bcdboot all boot entities for a dual boot system can be created/fixed.
I think the boot process for Vista and later is described very well on many internet sites even on Microsoft.com.
Note:
One of the best sites about Windows BCD is Geoff Chappell's site - there is more detailed information there than on Microsoft.com. Interested users could find quite useful information there and some critical notes on bcdedit documentation.
You have two partitions with boot flag and a bios_boot partition for grub which means you installed Ubuntu using BIOS mode!
On a GPT disk you should have only one EFI System Partition (ESP) which is used for storing all boot related files for Windows, Ubuntu e.t.c.
When installing / booting external media (CD, DVD, USB) use always EFI way of booting. This can be achived if you disable CSM/Legacy BIOS emulation in firmware.
In your case delete following partitions:(from GParted display)
sda3, sda7, sda8, sda9
Then you can boot from Windows installation DVD/USB (the UEFI way!!!), go to command prompt and use just
bcdboot drive_letter:\windows (drive_letter is drive where Windows is installed)
to repair UEFI booting.
You can also rewrite MBR to be in format "protected MBR" using
bootsect /nt60 all /force /mbr
Some explanations for repairing Windows BCD can be found here.
Then try rebooting to see if Windows boots OK.
After that you can install Ubuntu again but boot installation media the UEFI way !!!
Best Answer
You should be able to fix booting for UEFI using this command:
bcdboot c:\Windows /s Z: /f ALL
c: is where Windows is installed
Z: is EFI System Partition (to map use "mountvol Z: /s" on command prompt)
Some explanations for repairing Windows BCD.