In our case all VMs failed start and even when trying to create a new vhd with diskpart (CREATE VDISK FILE="c:\temp\test.vhd" MAXIMUM=10) an error occurred: "a virtual disk support provider for the specified file was not found".
The problem was caused by some Software installed to support an external USB drive (WD MyPassport).
Removing the software ("WD Drive Utilities" and "WD_SES_Drive") and rebooting solved the problem.
From a support forum: "I created windows 2008 clustering with VM highly available. When I create VM which link this VHD ON THE SHARED storage, I GOT AN ERROR "incorrect function" when I tried to start this VM. But, if I link this VHD to the local disk, I can start VM without any problem. I used StarWind simulated iSCSI storage."
The suggestion from a MS support engineer was:
"Do you mean that you tried to create a new VHD file on the SAN storage and add it to an existing virtual machine?
If possible, would you please try creating a new LUN and assigning it to the Hyper-V server, and then creating a new virtual machine and a secondary VHD file? Do not add this virtual machine into the Failover Cluster and put only the secondary VHD file in the new LUN to see if the problem remains?
If yes, well, it seems to be the StarWind iSCSI software issue or the storage issue. I am sorry to say that we have little knowledge on the StarWind iSCSI software and we may not be the best resource on this issue. You may need to contact StarWind for detailed information on this or, you can try downloading the latest version and check if you have configured all the settings correctly.
Just for your reference, here are some requirements if you want to use SAN as the storage device in Windows Server 2008:
1. The storage, including drivers, firmware, and software used for the storage, are compatible with Windows Server 2008.
2. The storage must support Persistent Reservations as specified in the SCSI Primary Commands-3.
3. The miniport driver used for the storage must work with the Microsoft Storport storage driver."
* * *
From another support forum: "I got this problem after I have syspreped Windows 2003 OS VHD. With hyper-V, if I create one VM which uses IDE controller and use syspreped windows 2003 OS VHD, the virtual machine starts fine. If I create one VM which use SCSI controller and use syspreped windows 2003 OS VHD, the VM can not start and got "Boot failure: Reboot and Select proper Boot device or insert boot media in selected boot device". After further investigation, I guess that I can not add SCSI in the boot order. In the future, I am going to use windows 2003 OS VHD on the SAN storage."