Microsoft makes the UEFI firmware of Hyper-V Generation 2 Virtual Machines open source (https://github.com/microsoft/mu_msvm) due to OpenVMM. I think this is good news for Hyper-V users. Based on that, I have revised and added some new definitions for this project.
Release Notes
- Introduce Mile.HyperV.Guest.Interface.h and Mile.HyperV.Guest.Protocols.h for including Hyper-V guest publicized interface and protocols definitions from https://github.com/microsoft/mu_msvm/tree/258361bd0d61320df8984705111d94af20b4d8a4.
- Microsoft's original comments for interface and protocols.
- More Hyper-V ARM64 guest definitions.
- Introduce the definition of HvCallModifySparseGpaPageHostVisibility.
- More VMBus protocol definitions for Microsoft Hyper-V Virtual Machine Bus device which replaced all definitions dumped from Windows 10 Build 14347's vmbus.sys.
- More VMBus protocol definitions for Microsoft Hyper-V Video device.
- More VMBus protocol definitions for Microsoft Hyper-V Virtual Keyboard device which replaced all definitions dumped from Windows 10 Build 14347's hyperkbd.sys.
- More VMBus protocol definitions for Microsoft Hyper-V SCSI Controller device and Microsoft Hyper-V Fibre Channel HBA device which replaced all definitions dumped from Windows 10 Build 14347's storvsc.sys.
- More VMBus protocol definitions for Microsoft Hyper-V Network Adapter device.
- Add protocol definitions for Microsoft Hyper-V Virtual PCI Bus device.
- Add protocol definitions for Microsoft Hyper-V Virtual Machine Bus File System device.
- Revise all Mile.HyperV definitions via the following files from https://github.com/microsoft/mu_msvm/tree/258361bd0d61320df8984705111d94af20b4d8a4.
- MsvmPkg\Include\Hv\HvStatus.h
- MsvmPkg\Include\Hv\HvGuest.h
- MsvmPkg\Include\Hv\HvGuestCpuid.h
- MsvmPkg\Include\Hv\HvGuestMsr.h
- MsvmPkg\Include\Hv\HvGuestSyntheticInterrupts.h
- MsvmPkg\Include\Hv\HvGuestHypercall.h
- MsvmPkg\MsvmPkg.dec
- MsvmPkg\Include\Vmbus\NtStatus.h
- MsvmPkg\Include\MsvmBase.h
- MsvmPkg\VmbusDxe\VmbusP.h
- MsvmPkg\VmbusDxe\ChannelMessages.h
- MsvmPkg\Include\Vmbus\VmbusPacketFormat.h
- MsvmPkg\VideoDxe\SynthVidProtocol.h
- MsvmPkg\VideoDxe\VramSize.h
- MsvmPkg\Include\Protocol\SynthKeyProtocol.h
- MsvmPkg\StorvscDxe\VstorageProtocol.h
- MsvmPkg\NetvscDxe\nvspprotocol.h
- MsvmPkg\NetvscDxe\rndis.h
- MsvmPkg\VpcivscDxe\wdm.h
- MsvmPkg\VpcivscDxe\VpciProtocol.h
- MsvmPkg\VpcivscDxe\PciBars.h
- MsvmPkg\Include\Protocol\VmbusFileSystem.h
- Revise all Mile.HyperV definitions via the following files from https://github.com/microsoft/OHCL-Linux-Kernel/tree/e9017243ba9b424f6516c4b206f454a1c2585fd2/include/uapi/hyperv.
- Migrate from Mile.Project.Windows to Mile.Project.Configurations for streamlining the build toolchain of this package.
Kenji Mouri