Building is driven by make (or mingw32-make.exe). By default both
Linux and Windows binaries are build.
Linux builds are done via Dockerfiles and create static binaries.
Windows builds require MSBuild, Visual Studio and Windows SDK
installed with a minimum version of 14290. The project/solutions
assumes 14291, so you may have to adjust the
WindowsTargetPlatformVersion in the project files.
All sample application assume a service ID of 3049197C-FACB-11E6-BD58-64006A7986D3 which needs to be registered once using:
$service = New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\GuestCommunicationServices" -Name 3049197C-FACB-11E6-BD58-64006A7986D3
$service.SetValue("ElementName", "Hyper-V Socket Echo Service")
The echo server is started with:
hvecho -s
The client supports a number of modes. By default, with no arguments supplied it will connected using loopback mode, i.e. it tries to connect to the server on the same partition:
hvecho -c
The client can be run in a VM and started with:
hvecho -c parent
which attempts to connect to the server in the parent partition.
Finally, if the server is run in a VM, the client can be invoked in the parent partition with:
client -c <vmid>
where <vmid> is the GUID of the VM the server is running in. The GUID can be retrieved with: (get-vm <VM Name>).id.