Share via


HyperV Discrete Device Assignment

Question

Thursday, November 17, 2016 3:19 PM

I'm trying to pass through a usb3 device to a linux VM.  All goes great until I try to start the VM. 

I'm currently running Windows 10 pro.  Maybe the problem?  The underlying workings of this feature is built in but maybe it's disabled on non Server os?  It would be nice to get a experts incite on this.  I know Server 16 has SR-IOV and 10 pro does not.  So that makes me think that if it's there, it works, if it's not there then move to server os.

So, on to the error. 

PS C:\Windows\system32> Add-VMAssignableDevice -VM $vm -LocationPath $locationPath –Verbose
VERBOSE: Add-VMAssignableDevice will add an assignable device to virtual machine "Ubuntu".

PS C:\Windows\system32> Start-VM -VM $vm
Start-VM : 'Ubuntu' failed to start.

Virtual Pci Express Port (Instance ID 216C3613-8E20-4EB5-865C-365B2F2B8F75): Failed to Power on with Error 'A hypervisor feature is not available to the user.'.
'Ubuntu' failed to start. (Virtual machine ID AA3E6FA0-9D76-4348-84BA-0D5D7775F615)
'Ubuntu' Virtual Pci Express Port (Instance ID 216C3613-8E20-4EB5-865C-365B2F2B8F75): Failed to Power on with Error 'A hypervisor feature is not available to the user.'
(0xC035001E). (Virtual machine ID AA3E6FA0-9D76-4348-84BA-0D5D7775F615)
At line:1 char:1

  • Start-VM -VM $vm

    + CategoryInfo          : NotSpecified: (:) [Start-VM], VirtualizationException
    + FullyQualifiedErrorId : OperationFailed,Microsoft.HyperV.PowerShell.Commands.StartVM

All replies (6)

Friday, November 18, 2016 8:04 AM ✅Answered

Hi Exabits,

I'm afraid it is not supported to run Discrete Device Assignment in Hyper-V in Windows 10. Only Server versions of Windows support this.

Here is a blog of the details:

https://blogs.technet.microsoft.com/virtualization/2015/11/20/discrete-device-assignment-machines-and-devices/

Best Regards,

Leo

Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact [email protected].


Friday, November 18, 2016 2:07 PM

Yeah I've read that.  There is good chance it's not 100% accurate though.  The same sort of error or bug is also referenced here.

https://social.technet.microsoft.com/Forums/windowsserver/en-US/a7c2940a-af32-4dab-8b31-7a605e8cf075/a-hypervisor-feature-is-not-available-to-the-user?forum=WinServerPreview&prof=required

This person is using Server 16 as the host, which definitely has DDA support.  So I'm trying to figure out if Windows 10 actually supports DDA or not.  I did the policy edit as posted in that thread with no effect.  Since I get a error nearly the same, I would assume that it's a bug in Windows or some kinda device incompatibility. 

I can also assume though that Windows 10 doesn't support DDA since it was a new feature added to Server 16.  It doesn't seem to be documented anywhere if Windows 10 inherited DDA but all the underlying powershell commands and setup works.

So I'm seeking a Experts insight.  Here's a proper powershell.  It would be nice to know what this means specifically.  'A hypervisor feature is not available to the user.' 

PS C:\Windows\system32> $vmName = 'Ubuntu'
PS C:\Windows\system32> $instanceId = '*VEN_1B21&DEV_1242*'
PS C:\Windows\system32> $vm = Get-VM -Name $vmName
PS C:\Windows\system32> $dev = (Get-PnpDevice -PresentOnly).Where{ $_.InstanceId -like $instanceId }
PS C:\Windows\system32> (Get-PnpDevice -PresentOnly).Where{ $_.InstanceId -like $instanceId }

Status     Class           FriendlyName                                                                     InstanceId
                                                                                     
OK         System          PCI Express Device of unknown type - Dismounted                                  PCIP\VEN_1B2...


PS C:\Windows\system32> Get-VMHostAssignableDevice


InstanceID   : PCIP\VEN_1B21&DEV_1242&SUBSYS_50071458&REV_00\4&E1ABBA9&0&0010
LocationPath : PCIROOT(0)#PCI(0200)#PCI(0000)
CimSession   : CimSession: .
ComputerName : TONYPC
IsDeleted    : False


PS C:\Windows\system32> Add-VMAssignableDevice -VM $vm -LocationPath $locationPath –Verbose
VERBOSE: Add-VMAssignableDevice will add an assignable device to virtual machine "Ubuntu".

PS C:\Windows\system32> Start-VM -VM $vm
Start-VM : 'Ubuntu' failed to start.
Virtual Pci Express Port (Instance ID 216C3613-8E20-4EB5-865C-365B2F2B8F75): Failed to Power on with Error 'A hypervisor feature is not available to the user.'.
'Ubuntu' failed to start. (Virtual machine ID AA3E6FA0-9D76-4348-84BA-0D5D7775F615)
'Ubuntu' Virtual Pci Express Port (Instance ID 216C3613-8E20-4EB5-865C-365B2F2B8F75): Failed to Power on with Error 'A hypervisor feature is not available to the user.'
(0xC035001E). (Virtual machine ID AA3E6FA0-9D76-4348-84BA-0D5D7775F615)
At line:1 char:1
+ Start-VM -VM $vm
+ ~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Start-VM], VirtualizationException
    + FullyQualifiedErrorId : OperationFailed,Microsoft.HyperV.PowerShell.Commands.StartVM

Monday, November 21, 2016 5:39 AM

Hi Exabits,

>>So I'm trying to figure out if Windows 10 actually supports DDA or not.

You are configuring a feature which is documented as not supported.

I would suggest you post in Windows 10 forum for help:

https://social.technet.microsoft.com/Forums/en-US/home?category=windows10itpro

Best Regards,

Leo

Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact [email protected].


Wednesday, November 30, 2016 1:36 AM

Hi Exabits,

Are there any updates on the issue?

You could mark the reply as answer if it is helpful.

Best Regards,

Leo

Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact [email protected].


Thursday, December 1, 2016 2:44 AM

No update, feature is there, passthrough works fine, until I start the VM to use it.  You say Windows 10 doesn't have this feature when in fact it does.  The device is passed through...that is why the VM won't start.  I posted in the Win 10 forum too at the same time.  Here is a link to that forum thread.

https://social.technet.microsoft.com/Forums/windowsserver/en-US/40c49c04-56bd-49c6-9032-130bb65a2dfa/hyperv-discrete-device-assignment?forum=win10itprovirt

Nobody has provided useful information.  I can't mark an answer when no good answer has been given. I refuse to believe Win 10 doesn't support DDA when I've done it and I get the same error as another guy on Server 16.

https://social.technet.microsoft.com/Forums/windowsserver/en-US/a7c2940a-af32-4dab-8b31-7a605e8cf075/a-hypervisor-feature-is-not-available-to-the-user?forum=WinServerPreview&prof=required I will soon try on Server 16 and after it fails too, just like the guy in this thread.

I will be back after I verify it doesn't work on Server 16 too.  If it does work on Server os then I will mark your reply as answer.  Should be 2 weeks from now when I can wipe and reinstall Server.

Thanks for the help!


Tuesday, April 2, 2019 10:51 PM

Error is related to unsupported hw virtualization feature, supported hw but disabled in bios. Check that VTd (Virtualization for Directed IO, Intel's term) is enabled in BIOS.

Others suggested to also 'bcdedit /set hypervisoriommupolicy' but was not required in my case. If you give it a try and doesn't make any difference, you can unset it with 'bcdedit /deletevalue hypervisoriommupolicy'.