Windows Vista tcpip.sys Connection Limit Patch for Event ID 4226
Apparently in Windows Vista, Microsoft still enforce and hard-limit (hard coded in tcpip.sys) the maximum simultaneous half-open (incomplete) outbound TCP connection attempts per second that the system can make, as in Windows XP SP2, in order to protect the system from being used by malicious programs, such as viruses and worms, to spread to uninfected computers, or to launch distributed denial of service attack (DDoS). When the limit is hit, in Event Viewer, there will be such an entry:
EventID 4226: TCP/IP has reached the security limit imposed on the number of concurrent TCP connect attempts
Unless Windows XP SP2 which has 10 maximum incomplete concurrent connection attempts limit per second, Windows Vista default limit is based on which edition of Vista users are using. For example, Home Basic has maximum limit of 2, and Vista Ultimate is 25 per second. Normal Windows Vista users should not face any problem or slow network connection with the half-open connections limit. However, heavy P2P (peer-to-peer) applications users such as uTorrent, BitTorrent, BitComet, Azureus, ABC, eMule (eDonkey network), etc, or P2PTV such as TVants, PPLive, PPStream, Sopcast, etc may face some error or slow download and upload speed due to this limit.
Due to enhanced security, to fix or crack the TCP concurrent connection limit in Vista is not as easy as in Windows XP. To remove maximum concurrent half-open connection limits in Windows Vista, apply the patched tcpip.sys with the following steps:
- Download patched tcpip.sys: Vista TCP/IP and UAC Auto Patcher (patched tcpip.sys is contained inside the archive)
64-bit tcpip.sys or 32-bit tcpip.sys. Alternative download link for 32-bit and 64-bit. - Open command prompt, and run the following 2 commands:
1. takeown /f c:\windows\system32\drivers\tcpip.sys
2. cacls c:\windows\system32\drivers\tcpip.sys /G “username”:FReplace username with the actual user name that used to log on to Windows Vista currently.
The second command can also used improved lcacls:
icacls c:\Windows\System32\drivers\tcpip.sys /grant “username”:f
- Disable the TCP/IP Auto-Tuning feature by running the following command in command prompt:
netsh int tcp set global autotuninglevel=disable
- For 64-bit Windows Vista (x64), the integrity checks need to be disabled as it need all drivers to be signed. So run the following command in DOS prompt:
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
Note: Above command no longer supported, and users require to press F8 on system startup to bypass driver signing integrity check.
- Replace the tcpip.sys in C:\windows\system32\drivers folder with the patched tcpip.sys downloaded from step 1 (remember the use the correct x64 or x86 version). Normally, this procedure can be done by simply login to Windows Vista with administrator account. However, if the process failed, reboot the computer and then press F8 to boot up in Safe Mode, and then copy and paste overwrite the tcpip.sys.
- Next, the maximum number of TCP half complete connection limits need to be set in registry. Open registry editor (regedit), and navigate to the following registry key:
HKEY_LOCALL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- Right click on the right pane, select “New”, then select “DWORD value”. Enter the new value name as “TcpNumConnections” (without quotes).
- Double click on TcpNumConnections registry value, and modify the value data to the desired maximum TCP/IP connection limit that you want to allow, in decimal value. For example, enter 500 as the value data for TcpNumConnections. You can use any limit that you prefer. Alternatively, download this registry registration file (another download link) that when executed, will set the TCP simultaneous connection limit to 16777214 (you can always modify the value in the file or in the registry after applied).
- Restart computer.
New: Windows Vista Event ID 4226 Auto Patcher
Windows Vista Event ID 4226 Auto Patcher has been renamed as Vista tcpip.sys and UAC Auto Patcher, which now has more than 6 versions of auto patcher download links for different versions of tcpip.sys with the release of various hotfixes and SP1. Visit here for details.
New: Half-Open Limit Fix (Automated tcpip.sys Patch using Test Self-Signed Certificate)
Also Available – Driver Version: CrackTcpip.sys for Vista SP1 v.668 – a non-patching method to bypass TCP connection limit.
Also available is TCP/IP auto patcher for 64-bit (x64) Windows Vista SP1.
Gui Version: VistaTcpPath TCP Auto Patcher which works for Vista RTM (non-SP1) version of tcpip.sys.
Old Version:
Version 1.0
Version 1.2
Version 1.3
Version 1.4
Version 1.5
With thanks to YaronMaor for batch script.
The TCP connection limit which trigger Event ID 4226 has now increased to 500 (or any other value you set), and will likely fix the error for re-occurring again.
Related Articles
- Windows Half-Open Limit Fix (Patch) Free Download to Remove XP, Vista and Server 2003 (32 and 64-bit) TCP 4226 Connection Attempts Limit
- Windows XP SP2 TCP Connection Limit (Event ID 4226)
- Download Vista tcpip.sys and UAC Auto Patcher to Increase TCP Connection Limit
- Half-Open Outbound TCP Connections Limit Removed in Windows 7 and Vista SP2 (No Patch Required)
- Download TCP-Z V2.4 Build 20090108 to Patch tcpip.sys of Windows 7 (32-bit and 64-bit Support)
- CrackTcpip.sys Driver for Vista SP1 v.668 to Patch tcpip.sys 6.0.6001.17052
- TCP/IP Has Reached the Security Limit Imposed on the Number of Concurrent TCP Connect Attempts Error on Windows Vista
- Universal Tcpip.sys Patch Auto Patcher Free Download (V1.2 Build 20090409)
- VistaTcpPatch Windows Vista TCP Half Open Limit Auto Patcher GUI Version
- How to Enable Concurrent Half-Open TCP Connect Attempts Limit in Windows Server 2008 and Vista SP2 or Windows 7










































February 7th, 2008 11:27
Admin, CYM
February 7th, 2008 11:20
Rick, where do you read the news?
February 7th, 2008 02:45
It’s confirmed now by MS: SP1 RC Refresh 2 (build 18000) is indeed RTM.
February 5th, 2008 06:15
Thanks again, I’ll wait at least for the final release of SP1, then will see..
February 5th, 2008 06:13
For the time being, yes, though it becomes almost a non-issue if you mostly use the sleep/hibernate feature rather than rebooting.
I’m sure someone will eventually figure a way around it, at least on 32-bit, where I’m surprised it’s enforced in the first place. There may even be an official way to do it on 32-bit.
February 5th, 2008 05:57
Thanks, it seemed to work.
Will I have to do this on every Start-Up?
Will/Can this be fixed?
February 5th, 2008 05:27
Yes, that’s the new normal for SP1 (see post #164), but you will be able to get around it by using the F8 option “DISABLE DEVICE DRIVER SIGNATURE ENFORCEMENT” (or words to that effect). Try it again. If that doesn’t work for you I have no explanation.
February 5th, 2008 05:20
I’m getting a message outside windows saying:
“Windows Failed to Start. a recent hardware or software change might be the cause. To fix the problem:
1. Insert your Windows installation CD & restart.
2. Choose Language.
3. Click “Repair…”
File: \windows\System32\drivers\tcpip.sys
Status: 0xc0000428
Info: Windows cannot verify the digital signature for this file.
Pressing ENTER, gives me the same menu as if F8 was pressed, non of the options make Windows Start-Up (I get the same error page all the time)
February 5th, 2008 05:03
I’ve tested that combo personally and it does work. “Won’t start up” is very vague. Do you mean you get the textual message about unsigned drivers? If so, remember that anytime you introduce an unsigned boot driver into SP1 (64bit *or* 32bit) you must now use F8.
Or are you talking more like what ElQuia found on 64bit? If so, I’d mention the same things to you as I did to him, since those are all the possible things you can check.
BTW, I wouldn’t get too concerned about this older RC build, since SP1 went RTM today and it’ll leak soon one way or another. Since Server 2008 also came out, and it and RC1 are sync’d to the same codebase, it’s interesting that Server 2008 has the same build string (6001.18000.080118-1840) as the last SP1 RC “Refresh 2.” One would assume then that the last SP1 RC *is* RTM (something MS last week denied) but I’m holding out for official word. Sometimes things aren’t as they seem.
February 5th, 2008 04:46
Sorry for that: Vista x32 SP1 RC 17128.
Installed Yaron’s Patch + restarted = win won’t start-up.
February 5th, 2008 04:36
x32 or x64? And you didn’t provide nearly enough detail. See the previous several posts for tips.
February 5th, 2008 04:33
@Yaron,
I’ve used your patch for 17128 – no good.
after the restart the Windows won’t start up…
I had to repair it with the installation CD…
February 3rd, 2008 06:30
Rick, havn´t tried yet after first try, was waiting for your comments on the username in the bat. Will try later and keep you posted.
BUT: am using eset ess (firewall, av + antispam). Usually should´nt have a problem. Don´t know if ess will recognize the modded tcpip.sys as “foraneous” and cut down comm.
Keep you posted.
February 3rd, 2008 04:43
OK, since UAC is disabled, it doesn’t matter what you did with the UAC line. The username syntax on the icacls line is correct. So assuming that all lines executed without incident (which is why I recommended removing @echo off and inserting a pause after each important line), I’m not sure what to make of it. Every system is different, and it doesn’t seem to get along on your system for whatever reason. Do you have other Internet related kernel-level utilities, like ZoneAlarm, which may need to be notified of the change before “allowing” you out onto the Internet?
BTW, rather than restoring the entire image each time you experiment with this (does it really take most of an hour?!), it’s easier to have a bootable emergency CD on hand which is capable of accessing NTFS volumes. That way you can simply access the drivers directory and rename your previous tcpip.sys file back again. It’s handy to have in general.
http://www.bootdisk.com
Or Google “hiren bootcd” for a treasure trove bootable disk image that you will want to put under your pillow at night.
Active Bootdisk is also nice, though not technically free. Ahem.
February 3rd, 2008 04:21
Sorry here is the bat:
@echo off
TITLE Windows Vista Event ID 4226 Auto Patcher v1.9
echo.
echo Windows Vista Concurrent TCP/IP Connection Attempt Limit Auto Patcher
echo Event ID 4226 Fix
echo Version 1.9b
echo.
echo Auto Patcher batch script by http://www.yaronmaor.net
echo.
echo for 64-bit version of Windows Vista (v20689)
echo.
echo.
echo Confirm to apply? (Press Ctrl-C and answer Y to terminate)
pause
echo.
echo.
echo ** by Pablo** reg import Disable_UAC_Prompt.reg
takeown /f %Systemroot%\System32\drivers\tcpip.sys
icacls %Systemroot%\System32\drivers\tcpip.sys /grant “Pablo”:f
netsh int tcp set global autotuninglevel=disable
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
copy %Systemroot%\system32\drivers\tcpip.sys %Systemroot%\system32\drivers\tcpip.original
echo.
echo Original tcpip.sys driver has been renamed to “tcpip.original” in its original folder.
echo.
copy tcpip64-20689.sys %Systemroot%\system32\drivers\tcpip.sys /y
reg import Vista_TCPIP_limit_50K.reg
echo.
echo *** Patch installation is complete. Please RESTART your computer!! ***
echo.
pause
February 3rd, 2008 04:19
Hey Rick. I´m DUMB, usually I ALWAYS READ preceding post. uhuh. Well, Ill try:
QUESTION: I already have uac disabled in my user “Pablo”. This user is an Administrator, see the bat below , I echoed the uac line, IS THIS CORRECT?. Please tell me if the sintax for username is correct?.
I´d try, but each time I have to recover (acronis) a C:\ backup its 40 to 50 minutes idle.
THANKS FOR YOUR QUICK REPLY
Pablo
February 3rd, 2008 03:09
ElQuia, check out some of the preceding posts. There are certain things you must do, such as what I mentioned in #180 about your username and the line in the batch file. And as mentioned in #179, you’ll want to ensure you do a “run as admin” when you run it.
If that still doesn’t work, edit the batch file again, remove “@echo off” and put a “pause” after each line so that you can be sure each line is executing as expected.
February 3rd, 2008 01:45
Hi. I tried “EventID4226Fix for Windows Vista v1.9b supports KB941644 v16567+v20689(32/64bit)” as published on http://www.yaronmaor.net/repair.htm.
My vista x64 has tcpip.sys ver 6.0.6000.20689. I run the bat as specified, it said everything ok. But when I rebooted, my network connection didn´t work, DUMeter service for example didn´t start, anything related to networking did not work.
Please somebody: IDEAS?. I´ve just started using Limwire and found the limitations everybody does.
HELLLPPPPPP !!!
January 29th, 2008 04:25
After thinking about your post Rick, i decided to check it out anyway…turns out i spelled my user name wrong…
Thanks for the pickup there buddy
-Travis
January 29th, 2008 04:08
Yeah, it actually happens at login when i type in my password. I thought that was funny…but hey stuff happens.
I did edit icalcs as well…maybe my system is just acting up
January 29th, 2008 02:30
Tmanxxiv, did you literally mean “at logon,” as in when you enter your password? Because that’s well after tcpip.sys would have loaded. Or do you mean before Windows loads in regard to getting a message from the boot menu about loading unsigned drivers (in which case you need to use F8, as described earlier).
And just so we’re on the same page, you did also edit the icacls line in the installation batch file to include your username, right?
January 29th, 2008 02:01
I’ve installed this patch before on my 32 bit system but i recently upgraded to 64…I can’t seem to get it to work now. After I install the patch (64-bit 16567) and reboot, it freezes at logon.
Yes, i disabled UAC and ran as administrator.
Vista Ultimate 64 is what I am running.
Any suggestions?
January 27th, 2008 02:45
Also, this new release DOES NOT say evaluation version on the bottom right. And when you go to properties it says SERVICE PACK 1 now.
January 26th, 2008 20:18
[...] ich meinte auch nur das ich mich freuen w
January 26th, 2008 07:31
Hey guys-
Here is the SP1 Eefresh 2 Script to install to download the Refresh 2 from Windows Update
http://files.filefront.com/SP1+rcr2RKcmd/;9508147;/fileinfo.html
Or make this into a reg file.
@echo off
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\VistaSp1 /f > NUL 2>&1
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\WindowsUpdate\VistaSP1 /f > NUL 2>&1
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\VistaSp1 /v Beta1 /t REG_SZ /d dcf99ef8-d784-414e-b411-81a910d2761d /f
IF NOT %errorlevel% == 0 ( goto ERROR)
:SUCCESS
@echo.
echo ===========================================================
echo Windows Vista SP1 registry key has been set successfully.
echo Please check for updates in Windows Update.
echo ===========================================================
@echo.
goto END
:ERROR
@echo.
echo ===========================================================
echo FAILED to set Windows Vista SP1 registry keys.
echo Please run this script by right clicking and selecting
echo “Run as Administrator”.
echo ===========================================================
@echo.
goto END
:END
pause