├── install.bat ├── mslbfo_eventlog.reg ├── README.md ├── mslbfo_service.reg ├── extract.bat ├── mslbfo_network_provider.reg └── HUMAN.md /install.bat: -------------------------------------------------------------------------------- 1 | set ImageIndex=4 2 | 3 | xcopy /H /Y /E .\extracted\%ImageIndex% C:\ 4 | reg import mslbfo_service.reg 5 | reg import mslbfo_network_provider.reg 6 | reg import mslbfo_eventlog.reg 7 | sigcheck -accepteula -i c:\windows\system32\drivers\mslbfoprovider.sys 8 | -------------------------------------------------------------------------------- /mslbfo_eventlog.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\System\MsLbfoProvider] 4 | "ProviderGuid"=hex(2):7b,00,33,00,38,00,37,00,65,00,64,00,34,00,36,00,33,00,2d,\ 5 | 00,38,00,62,00,31,00,62,00,2d,00,34,00,32,00,63,00,39,00,2d,00,39,00,65,00,\ 6 | 66,00,30,00,2d,00,38,00,30,00,33,00,66,00,64,00,66,00,64,00,35,00,64,00,39,\ 7 | 00,34,00,65,00,7d,00,00,00 8 | 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # LBFO in Windows 10 2 | 3 | Microsoft removed Load Balancing / Fail-Over (LBFO) support, also known as NIC Teaming, from desktop SKUs like Windows 10. It is possible to re-install this feature using files from a Windows Server ISO. This repository contains some helper scripts and registry keys to make this happen. 4 | 5 | See the [blog post](https://codeinsecurity.wordpress.com/2020/05/27/re-enabling-nic-teaming-lbfo-in-windows-10-desktop-skus-even-after-microsoft-removed-it/) for instructions. 6 | 7 | **NOTE:** This was only tested on a couple of Windows 10 Pro 1909 VMs. I have no idea if it'll work on your machine, or on newer versions. This is a complete hack and you should be careful with it. 8 | -------------------------------------------------------------------------------- /mslbfo_service.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MsLbfoProvider] 4 | "Description"="@%SystemRoot%\\System32\\drivers\\MsLbfoProvider.sys,-501" 5 | "DisplayName"="@%SystemRoot%\\System32\\drivers\\MsLbfoProvider.sys,-501" 6 | "ErrorControl"=dword:00000001 7 | "Group"="NDIS" 8 | "ImagePath"=hex(2):53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,\ 9 | 72,00,69,00,76,00,65,00,72,00,73,00,5c,00,4d,00,73,00,4c,00,62,00,66,00,6f,\ 10 | 00,50,00,72,00,6f,00,76,00,69,00,64,00,65,00,72,00,2e,00,73,00,79,00,73,00,\ 11 | 00,00 12 | "Start"=dword:00000003 13 | "Type"=dword:00000001 14 | 15 | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MsLbfoProvider\Parameters] 16 | 17 | -------------------------------------------------------------------------------- /extract.bat: -------------------------------------------------------------------------------- 1 | mkdir extracted 2 | 3 | set SevenZipPath="C:\Program Files\7-zip\7z.exe" 4 | set InstallWim=install.wim 5 | set ImageIndex=4 6 | set CatalogGUID={F750E6C3-38EE-11D1-85E5-00C04FC295EE} 7 | set CatalogName=Microsoft-Windows-Server-Features-Package017~31bf3856ad364e35~amd64~~10.0.17763.1.cat 8 | 9 | set PathsToExtract=%ImageIndex%\Windows\System32\CatRoot\%CatalogGUID%\%CatalogName% 10 | set PathsToExtract=%PathsToExtract% %ImageIndex%\Windows\System32\drivers\mslbfoprovider.sys 11 | set PathsToExtract=%PathsToExtract% %ImageIndex%\Windows\System32\drivers\en-US\mslbfoprovider.sys.mui 12 | set PathsToExtract=%PathsToExtract% %ImageIndex%\Windows\System32\DriverStore\en-US\MsLbfoProvider.inf_loc 13 | set PathsToExtract=%PathsToExtract% %ImageIndex%\Windows\System32\DriverStore\FileRepository\mslbfoprovider.inf_amd64_* 14 | 15 | %SevenZipPath% x -aoa -o.\extracted %InstallWim% %PathsToExtract% 16 | 17 | sigcheck -accepteula -i -f .\extracted\%ImageIndex%\Windows\System32\CatRoot\%CatalogGUID%\%CatalogName% .\extracted\%ImageIndex%\Windows\System32\drivers\mslbfoprovider.sys 18 | -------------------------------------------------------------------------------- /mslbfo_network_provider.reg: -------------------------------------------------------------------------------- 1 | Windows Registry Editor Version 5.00 2 | 3 | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4d36e974-e325-11ce-bfc1-08002be10318}\{FC66A602-B769-4666-A540-CA3DF0E7DF2C}] 4 | "InstallTimeStamp"=hex:e4,07,05,00,01,00,12,00,12,00,1a,00,31,00,80,03 5 | "Characteristics"=dword:00040000 6 | "ComponentId"="ms_lbfo" 7 | "Description"="@mslbfoprovider.inf,%lbfo_desc%;Microsoft Load Balancing/Failover Provider" 8 | "InfPath"="mslbfoprovider.inf" 9 | "InfSection"="Install" 10 | "LocDescription"="@mslbfoprovider.inf,%lbfo_desc%;Microsoft Load Balancing/Failover Provider" 11 | 12 | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4d36e974-e325-11ce-bfc1-08002be10318}\{FC66A602-B769-4666-A540-CA3DF0E7DF2C}\Ndi] 13 | "TimeStamp"=hex:e4,07,05,00,01,00,12,00,12,00,1a,00,31,00,80,03 14 | "HelpText"="@%SystemRoot%\\System32\\drivers\\MsLbfoProvider.sys,-500" 15 | "Service"="MsLbfoProvider" 16 | "CoServices"=hex(7):4d,00,73,00,4c,00,62,00,66,00,6f,00,50,00,72,00,6f,00,76,\ 17 | 00,69,00,64,00,65,00,72,00,00,00,00,00 18 | "FilterClass"="ms_implatform" 19 | "FilterType"=dword:00000002 20 | "FilterRunType"=dword:00000001 21 | 22 | [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4d36e974-e325-11ce-bfc1-08002be10318}\{FC66A602-B769-4666-A540-CA3DF0E7DF2C}\Ndi\Interfaces] 23 | "LowerRange"="nolower" 24 | "UpperRange"="noupper" 25 | "FilterMediaTypes"="ms_implatform" 26 | 27 | -------------------------------------------------------------------------------- /HUMAN.md: -------------------------------------------------------------------------------- 1 | # Human Content Policy 2 | 3 | Open source contributions are only productive when everyone involved has a mutual respect for each others' time. As such, **this project has a zero tolerance policy against the use of generative machine learning systems** (e.g. Copilot and other LLMs). This includes the use of any such systems that are integrated into GitHub. 4 | 5 | Generative machine learning systems may not be used to generate any content that is submitted to this project. This includes but is not limited to: code, assets, commit descriptions, documentation, issue reports, and comments. Endorsement of generative machine learning systems within any submitted content will be considered equivalent to their use and subject to the same penalties. 6 | 7 | Anyone who violates this policy will receive an immediate and permanent ban from this project. This is a zero tolerance policy - no warnings will be given. 8 | 9 | ## Reasons 10 | 11 | These reasons are offered for informational purposes only. They do not represent the sum of my reasoning for this policy, nor are they to be seen as an opportunity for debate. 12 | 13 | 1. A fundamental expectation of respect for my time. 14 | 2. LLMs are incapable of accurately conveying meaning due to an inherent lack of intentionality. This results in sequences of words or tokens that may superficially correlate with the intended problem statement, but which often contain unintended inaccuracies or deviations. Among other problems, this leads to miscommunications and frustrates the peer review process. 15 | 3. LLMs systematically launder stolen labour. Beyond the obvious moral implications, this also makes it impossible to determine whether the output is a derivative work of copyrighted material. 16 | 4. Environmental concerns. 17 | 18 | --------------------------------------------------------------------------------