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










































January 26th, 2008 04:42
Hi All,
sorry for the delay
I’ve just published v1.9c of the patch, directed for Vista SP1 RC v744 with tcpip driver build 17128.
download at: http://www.yaronmaor.net
listed under “Repair” section.
at the moment only 32bit version is available.
Cheers,
YaronM
January 26th, 2008 04:22
Yaronmaor has it and was going to test it, but I suspect he got busy. With RTM coming as soon as early February, and probably no later than about a month from now, we’ll all have one build to concentrate on soon anyway.
Do you know of a tool that allows you to browse memory locations (as mentioned in the context of the driver)? I know one of Norton’s could do that LONG ago, but I’m hard-pressed to think of one currently, and I’d like to check it out.
January 26th, 2008 04:14
He doesn’t has blog as of I know of. We currently IM. The driver theory is simple – monitor that particular memory address and change it to another value.
That’s great that the patch still work. That’s mean we will have 2 editions that users can fall back to if one doesn’t work. I will update this post soon too to reflect newer version.
Btw, please use contact to email me if you wish to share your patched 17128. I don’t see it been included by yaronmaor yet.
January 26th, 2008 04:01
OK, that’s good to know about the memory address not changing. Incidentally, by “where is the author” I wasn’t referring to the country but meant it in the sense of does he have a site, blog, etc, where he talks about this in more detail and can be contacted?
In my case, patched 32-bit 17128 is working, so I would expect 18000 to as well (I didn’t try the original RC). We also had some reports of success with the pre-SP1 January update to tcpip.sys.
Even back to the original version, there were reports of problems, but there are a lot of variables on systems so lots of things to go wrong. The batch file has to execute in its entirety. You have to be aware of F8 (and if you’re not, that looks like a crash). Etc. And some issues pertained to 64-bit, which I can’t test directly (and the other solution doesn’t work with 64-bit).
Note: The patch “recipe” I posted sometime back can no longer be followed exactly with SP1 builds due to a problem with the now outdated PEChksum. You need to use a tool called PE Explorer instead but only to determine what the new checksum is so that you can change it manually (don’t let PE Explorer do it). PEChksum may or may not be updated to handle the new compiler or whatever it is that MS changed in the way they make their files.
January 26th, 2008 03:48
Rick, btw, to answer your question, the author is from China.
January 26th, 2008 03:36
Sorry about the version because initially we thought the tcpip.sys is changed every version, and hence the ‘limit’ memory location. It turns out the driver can still function with subsequent release. I will update the post soon. The patched SP1 tcpip.sys has some reports that it crashes, have you get it to work?
January 26th, 2008 03:22
It says in the post that it’s version specific though, in that case targeted at the original RC release. Is that not the case? Where’s the author?
Using a foreign driver running on top of TCPIP makes me uncomfortable and could have very subtle repercussions I’m not looking forward to discovering. At least this patch method is tried and true.
As mentioned a couple posts ago, SP1 drivers are now signed even on 32-bit, so there is the F8 signature issue to deal with (at least for now), but as someone who doesn’t boot that often, it’s only a small issue for me.
January 26th, 2008 03:12
There is no longer a need to patch tcpip.sys in Vista SP1, and I believe it’s not possible to patch SP1 tcpip.sys without breaking it due to signature issue. There is now a external driver version to fix 4226 problem and unlock the TCP connection limit. Refer here:
http://www.mydigitallife.info/2008/01/07/cracktcpipsys-driver-for-vista-sp1-v668-to-patch-tcpipsys-60600117052/
It should works on all SP1 RC v.668, v.744 and latest 6001.18000. The author will write an auto patcher/installer once the SP1 is RTM.
January 25th, 2008 09:56
The KB number (936660) doesn’t change from beta to beta. If you do properties on the Computer icon on the Start menu, you’ll be able to see what version you have. It should say 6001.17128 (v.744) there. If it doesn’t you somehow downloaded the original RC1 and not this year’s refresh.
I wouldn’t get too excited about it though, because just to make me eat my words, MS released Refresh 2 of RC1 this afternoon to those in the beta. No word yet whether this one will be put out to the general public as well. It’s 6001.18000.
January 25th, 2008 08:02
Rick, I just checked, my version is 936330 and the link you gave me is the exact same version, but I still have the TCPIP.SYS noted below!
January 25th, 2008 07:57
Rick, I just downloaded this RC like 2 days ago from Microsoft, and in the corner it says BUILD 6001. There isn’t a newer one is there??
January 25th, 2008 07:40
I should add, though, that SP1 (even 32-bit) does make you do the F8 dance, as described below in post #152 for pre-SP1 64-bit.
Here’s more:
There’s a new twist as of SP1 on 32-bit Vista systems:
http://www.microsoft.com/whdc/winlogo/drvsign/drvsign.mspx
“Driver binaries that load at boot time (”boot start drivers”) must contain an embedded signature, *for both x86 and x64 versions of Windows Vista and Windows Server 2008*.”
Boot-start drivers.
“In the special case of boot-start drivers–drivers that are loaded by the Windows Vista operating system loader–publishers must use an SPC to embedded-sign the driver binary image file. This requirement ensures optimal system boot performance.”
In tests using the publicly available 32-bit RC Refresh build, I found the experience identical to what’s discussed above in the case of 64-bit: When booting, you’re told that such-and-such a driver doesn’t have a valid digital signature, and the only way around it is to use F8 for that boot only. In this particular case, I was testing [a modded] tcpip.sys.
32-bit SP1 drivers are digitally signed, unlike the original release. This is not surprising or even unwelcome, but the enforcement is.
January 25th, 2008 07:31
Braddman, please update to the RC Refresh build (likely the last public release until RTM), which uses 17128. There is a fix for that one, though it’s not up yet.
http://www.microsoft.com/downloads/details.aspx?FamilyID=529d992a-d69e-4c73-9213-7a7f3852c0ca&DisplayLang=en
January 25th, 2008 07:26
I have a 6.0.6001.17052 TCPIP.SYS, does the crack work for this version? I will email the file to you.
January 20th, 2008 16:26
Another problem, when I use this patch on Vista x64 home premium 6.0.6000 (for tcpip.sys v20689), then launch emule or utorrent for 1 or 2 days, the port they use seems to be blocked. This never happened before patch.
January 20th, 2008 05:56
[...] some other unofficial links to sites with more information, forums and the patches required, and here’s a link [...]
January 17th, 2008 09:28
@Ben: It is a long and winding thread, but AFAIK the patches work. If you’re 64-bit, you’ll have to do the F8 workaround (see #151) because of MS’s signed driver requirement that they’ve been rolling out starting last August with the first of a series of updates.
This is not to say that it’ll work perfectly in every case, but if the batch file executes properly there’s a very good chance you won’t see a problem.
January 17th, 2008 08:55
SO how do we fix the new version? ive seen so many different things, i’m lost.
January 14th, 2008 04:24
Sleep/hibernation?
January 14th, 2008 04:19
Waiting to a automatic solution to DISABLE DEVICE DRIVER SIGNATURE ENFORCEMENT !!!
January 14th, 2008 03:54
@Silver: Yup. It should be emphasized again that this is now the case for any patched system files, not just these. It’s a deliberate choice they made by virtue of those (at least) 5 other updates I mentioned. I expect someone will come up with a way to make the F8 selection (or equivalent) “stick” though. People are pretty clever.
January 14th, 2008 03:47
This is my situation. I already installed KB941644. I remove it, then download KB940646 and install it.
I install KB941644 standalone patch download form MS website, but it doesn’t work. TCPIP.sys doesn’t be replaced. Finally I install KB941644 through Windows Update, that’s all done.
January 14th, 2008 03:46
so, this mean that the patch will not run wihtout the “device driver signature enforcement”-bootoption?!
oh damm, it’s very stupid to boot windows every time like that…
January 14th, 2008 03:34
Ripped from the aforementioned forum since it’s important to know:
If you tap F8 during startup (to get the bootup menu where you select normal mode, safe mode etc.), at the bottom is an option “DISABLE DEVICE DRIVER SIGNATURE ENFORCEMENT”.
Select this and Vista will bootup without device driver signature enforcement. This works. No really, it works. This is different to “bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS” or any other such options.
The “bcdedit” seems to be for device signing during runtime. The recent slew of updates however seem to be applying a BOOTUP signature enforcement, which obviously being bootup happens before runtime.
Unfortunately there is no way to get this to automatically run every time – you have to go to your bootup menu every time you start your PC up. Somewhat of an annoyance, but I have got used to it as a way to remove the half-open connection limiter.
I hope this helps other people. It helped me as I thought I had destroyed my internet when I patched my tcpip.sys without backing it up and suddenly found anything related to networking was “broke” – any network related service not starting up etc., only to find this was because tcpip.sys was not loading due to it not passing this new bootup device driver signature check/enforcement.
January 14th, 2008 03:29
@YaronMaor I have send you my tcpip.sys (x64, 20689) to your mail-adress (info at yaronmaor dot net).
@all this patch (v. 1.9) was my first patch, i don’t patch the .sys eather! first i installed the kb940646 and than the kbKB941644, at last the patch (1.9)…
it doesn’t work…