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










































January 14th, 2008 03:27
Follow-up: the DDISABLE_INTEGRITY_CHECKS issue turns out to be well known and is unrelated to the patch.
Basically, when any of these updates are installed, you cannot run the DDISABLE_INTEGRITY_CHECKS command:
KB943899
KB943078
KB932596
KB938979
KB941649
And there may be others. The F8 workaround, as previously mentioned, is the only solution right now for this idiocy (I certainly don’t recommend uninstalling the KBs just for this). Watch this thread for further developments on this “evil updates” issue:
http://forums.microsoft.com/technet/showpost.aspx?postid=2012166&siteid=17&sb=0&d=1&at=7&ft=11&tf=0&pageid=2
January 14th, 2008 03:16
RyanHo, You’re talking about 20689, right?
I don’t know why that line in the batch wouldn’t work for you. Did you run it from an elevated prompt?
Everyone: When posting, please cite version and platform.
January 14th, 2008 03:09
Hi All,
I’ve just updated the recent patch to include the 64bit of v16567 driver.
http://www.yaronmaor.net > “Repair” section.
As Rick wrote before, please send us details on 64bit systems installed with patch. which version did you install? did it work for you? did the earlier versions work before?
Thanks,
YaronM
January 14th, 2008 03:08
Rick, you are right. It actually works. But I have another problem.
bcdedit.exe -set loadoptions DDISABLE_INTEGRITY_CHECKS
The option “DDISABLE_INTEGRITY_CHECKS” doesn’t work, I don’t know why. I have to press F8 in boot menu and select “don’t check driver integrity”.
January 14th, 2008 03:04
Silverbreaker: Was the RTM 64-bit patch working for you before? I ask because if it wasn’t, the new one won’t either, since it was done in the same way.
Let’s consider the new 64-bit patch a “work in progress” at this point until we can get more feedback.
I’d also like to hear any feedback on the 64-bit 16567, which is forthcoming if it’s not already there.
January 14th, 2008 02:33
@YaronMaor and @Rick
your Patch (1.9) doesn’t work on my 20689 x64 vista!! the tcpip.sys crachs after the reboot!
please fix the problem!
January 13th, 2008 23:47
My theory about the KB941644 lottery is this. I’m anxious to hear from anyone who can prove or disprove it:
-If you already have 6.0.6000.16xxx before installing it, you’ll get 6.0.6000.16567.
-If you already have 6.0.6000.2xxxx before installing it, you’ll get 6.0.6000.20689.
If true, I’d recommend people already be on a 6.0.6000.2xxxx hotfix before installing it, since I expect that the larger, seemingly “newer” 20689 version is the more comprehensive fix, a “QFE” (integrates all other fixes which apply to that module) rather than a “GDR” (contains only the specific fix and not all others). Why Microsoft would do it this way I can’t understand, since they’re both roughly the same size.
This would be a convenient way to get onto 6.0.6000.2xxxx if you haven’t installed KB941644 yet:
http://support.microsoft.com/kb/940646
January 13th, 2008 20:30
Hi CD,
I was waiting for someone to come-up with this situation…
Please send me a copy of the tcpip.sys file with the version 16567 archived in RAR or ZIP.
send it to: info at yaronmaor dot net.
I will patch it and add it to the patch-package.
Thanks,
YaronM
January 13th, 2008 18:52
Hi there
I got 16567 version of file (tcpip.sys) after instaling KB941644 in Vista Utlimate x64.
Anyone there with same case.
YaronMaor are you planing patch this version of file for 64bit system ?
Salutation
CD
January 13th, 2008 15:06
Hi All,
There’s a new revision (v1.9b) for the patch that includes support for 64bit and also to the two file versions that comes with the 32bit (16567 & 20689).
Please follow the README.TXT file that comes with the patch.
find it at: http://www.yaronmaor.net
under the “repair” section.
Cheers,
YaronM
January 13th, 2008 13:38
For anyone wondering how to mod 64-bit, it’s the same procedure as in post #131, with the following exception:
1) With UltraEdit (or your favorite binary file editor), search for this pattern:
0f 87 24 01 00 00
January 13th, 2008 07:32
Er, that’s: info at yaronmaor dot net
January 13th, 2008 06:48
Rob, please email your 64-bit 20689 to yaronmaor dot net. Thanks.
January 13th, 2008 06:09
Rob, KB941644 installs 16567 in some cases and 20689 in other cases (read a few posts back), but regardless we need the original UNpatched 16386 to be able to see what needs to be done.
BTW, since I take it you were using the patched version (of 16386) on 64-bit until recently, how did it work for you?
January 13th, 2008 05:37
YaronM,
Mine is the version 20689….
January 13th, 2008 04:10
Hi RobG,
Please send a copy of the unpatched version of 64-bit v6.0.6000.16386 tcpip.sys to the following address:
info at yaronmaor dot net
thanks,
YaronM
January 13th, 2008 03:56
Rob, I’d guess that you could follow the same recipe, but without seeing the original version I wouldn’t know.
January 13th, 2008 03:46
YaronM,
Is it difficult to make the patch to 64 bit version ???
January 12th, 2008 23:57
Hi All,
in the link below you can find the new v1.9 of the tcpip patch supporting KB941644 (for 32bit only). Find it under the “Repair” section:
http://www.yaronmaor.net
Thanks for Rick for his helpful information in cracking the tcpip driver.
Cheers,
YaronM
January 12th, 2008 15:21
Modified 6.0.6000.16567 (32-bit), in case anyone wants to try it out. How I did it is explained below. Let me know how it works.
http://rapidshare.de/files/38276806/tcpip_eventid4226fix_6.0.6000.16567__32-bit_.zip.html
Well, by doing extensive searching, I found out the purpose of the mystery pair of bytes starting at 140H: the checksum. No wonder it was different with each revision of the file.
So, I took 6.0.6000.16567 (32-bit) and did the following. With this recipe, any version that comes along can be easily modded:
1) With UltraEdit (or your favorite binary file editor), search for this pattern:
0F 87 8b 00 00 00
2) In the found location, replace those six bytes with:
90 90 90 90 90 90
3) Save the file and close the editor.
4) Download PEChksum here (you can ignore the other four programs in the archive).
http://www.bitsum.com/files/pesuite.zip
5) Copy PEChksum.exe to the same directory as your modified tcpip.sys, open an elevated command prompt in that directory, and run:
PEChksum tcpip.sys
6) You’re done.
Your output will look like this (values will vary by version; this is the output for 6.0.6000.16567):
+ Processing file: tcpip.sys
+ Original checksum: 0×000C86AB
+ New checksum : 0×000C9DD5
+ Checksum required correction.
Modules analyzed: 1
Modules whose checksum was corrected: 1
PEChksum automatically makes the modification necessary to the file: the checksum, which in this case was located at 140H-141H. This is necessary because you modified the file earlier.
In summary, these are the changes for this particular file:
tcpip.sys 6.0.6000.16567
00000140 : AB D5
00000141 : 86 9D
0003F479 : 0F 90
0003F47A : 87 90
0003F47B : 8B 90
0003F47C : 00 90
0003F47D : 00 90
0003F47E : 00 90
January 10th, 2008 00:24
OK, so here’s my line of thinking on patching 6.0.6000.16567. Tell me if I’m crazy, please.
Comparing the RTM version with your patch in UltraEdit, the only differences I see are these:
RTM: 140H-141H: 67 0F
Patch: 140H-141H: 91 26
RTM: 3F47dH-3F482H: 0F 87 8b 00 00 00
Patch: 3F47dH-3F482H: 90 90 90 90 90 90
When looking in 6.0.6000.16567 for something comparable, I found:
-The first pattern is still 140H-141H, but the new values there are: AB 86. The byte following, at 142H, is now 0C instead of 0D.
-3f479H-3f47fH is the new location for the second pattern, and all the numbers around it also match the original so it’s definitely the right location.
So the second change seems easy. The first one is more ambiguous, since I’m not sure if the third byte should also be changed.
January 9th, 2008 23:55
There appear to be two sets of files with this update listed here in the Security Update Deployment, Windows Vista (all editions), File Information section. Since we both got 6.0.6000.16567 (I tested on the Enterprise edition) it’s pretty safe to assume most will get that, but the other version is mentioned for tcpip.sys as well, so eventually someone’s going to turn up with it.
http://www.microsoft.com/technet/security/bulletin/ms08-001.mspx
January 9th, 2008 15:47
After installing KB941644, I too get tcpip.sys version 6.0.6000.16567. 6.0.6000.20689 probably is for other files?
January 9th, 2008 14:33
Clarification: After actually installing MS08-001, I got v6.0.6000.16567 of TCPIP.SYS, not what I mentioned earlier. Both versions are mentioned in the technote for 32-bit, so apparently some 32-bit flavors get one and some the other. First I’ve heard of such a thing, but I can’t think of any other explanation.
January 9th, 2008 04:02
Just a heads up, MS today released the first mainstream update to TCPIP.SYS since 32-bit RTM. It’s part of Security Bulletin MS08-001 and is v6.0.6000.20689.
By “first” I’m not counting betas and not counting a couple optional updates made available only via obscure KB articles. This one is being pushed out to everyone via Windows Update, though technically speaking it is optional if you don’t use automatic updates.
So now the search is on for the patched version (just like was created for the RTM version), though why an intelligent updater like the original one for XP isn’t available is still a mystery.