Files
yttrium-virtio-gpu/NetKVM/NotifyObject/Readme.md
T
2020-07-07 17:53:39 +03:00

1.8 KiB

Notify object of VIOPROT protocol supported by NETKVM

The notify object runs on protocol installation (it checks all the existing adapters) and on installation of new adapter (it checks the new adapter):

If the adapter's PnP ID matches the list of supported ones, the notify object unbinds it from all the protocols and binds only to VIOPROT. It there is NETKVM adapter with the MAC address identical to one of checked netwrok adapter, these 2 adapters with the same MAC address will be 'teamed' (subject to compatibility check) and the NETKVM uses the teamed adapter for RX and TX.

Protocol installation

(by admin, from the directory where vioprot.inf is located)

netcfg -v -l vioprot.inf -c p -i VIOPROT

Protocol uninstallation (example of the batch):

netcfg -v -u VIOPROT
timeout /t 3
for %%f in (c:\windows\inf\oem*.inf) do call :checkinf %%f
echo Done
timeout /t 3
goto :eof
:checkinf
type %1 | findstr /i vioprot.cat
if not errorlevel 1 goto :removeinf
echo %1 is not VIOPROT inf file
goto :eof
:removeinf
echo This is VIOPROT inf file
pnputil /d "%~nx1"
timeout /t 2
goto :eof

Supported adapters

Built-in list at the moment of writing:

  • "ven_8086&dev_1515" - Intel X540 Virtual Function
  • "ven_8086&dev_10ca" - Intel 82576 Virtual Function
  • "ven_8086&dev_15a8" - Intel Ethernet Connection X552
  • "ven_15b3&dev_101a" - Mellanox MT28800 Family

Change the list of supported adapter without rebuilding the binary

Registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\VioProt

Name Type Value Note
NoDefaults DWORD 1 Disables built-in list
Supported MULTI_SZ List Substrings in format "ven_XXXX&dev_XXXX", for example: "ven_8086&dev_1520XXXX"

Note: Never include PnP ID of NETKVM adapter!