Jump to content

Windows 98 Limitation: Max. 6 Instances of TCP/IP


Multibooter

Recommended Posts

Windows 98 has a serious limitation: A maximum of 6 instances of TCP/IP is permitted.

This is particularly annoying when running Win98 on a laptop, where one can easily use different WLAN and Ethernet Cardbus PCCards, and each PCCard gets assigned an instance of TCP/IP. My old laptop has 2 PCMCIA slots, so inserting the same PCCard into the other slot results in the creation of another instance of TCP/IP in Control Panel -> Network.

The maximum of 6 instances is reached quickly. Another device requiring TCP/IP can then only be installed after removing an existing TCP/IP instance, or after uninstalling an existing TCP/IP device.

Removing an existing TCP/IP instance is easy: just select in Control Panel -> Network an instance of TCP/IP and click on the Remove button. Alternatively you can select the physical network device in the Network window (i.e. the network component whose name is NOT preceded with "TCP/IP->"), click on the Properties button, then in the Bindings tab de-select the TCP/IP protocol.

The problem is how to add back the TCP/IP protocol to the specific device once the TCP/IP binding was removed. By clicking on the Add button in the Network window, then selecting the Microsoft TCP/IP protocol, Windows 98 will add back the binding to the TCP/IP protocol for ALL TCP/IP devices whose TCP/IP binding was removed, starting apparently with the top TCP/IP device listed in the Network window, down to the bottom of the list, until 6 instances of TCP/IP are reached.

If, for example, the Network window contains 8 TCP/IP devices with 3 devices for which TCP/IP was removed, Windows restores the TCP/IP binding of the first TCP/IP device without a TCP/IP binding in the Network list, then stops with the message "Your system allows only 6 instances of TCP/IP." In other words, if the TCP/IP device without a TCP/IP binding is at the top of the list of installed network components in the Network window, the TCP/IP binding gets restored. If it is at the bottom of the list, you're out of luck.

QUESTION: Is there a Win98 software tool (or an alternative method) which allows to add back the TCP/IP binding of a SPECIFIC device, or which prompts for which devices the TCP/IP binding should be restored?

Such a tool would allow to select which installed TCP/IP devices should be active, given the limitation of max. 6 instances of TCP/IP.

Edited by Multibooter
Link to comment
Share on other sites


You might use regshot to compare the registry before and after removing the binding, to find out how and where in the registry it's done. Then set them by hand or using a set to reg files created just for that purpose.

Link to comment
Share on other sites

Perhaps it would be easier to backup and restore the whole network configuration, instead.

I have currently 8 TCP/IP devices installed, i.e. more than 6. My objective is to find an easy way to set which TCP/IP devices are currently active, i.e. have a TCP/IP Binding.

For example, 2 Ethernet cards only need to be active when I want to connect both my HP2605 Color Laserjet (for printing via Ethernet connection instead of via USB connection) via an Ethernet card and the router (for internet access) to a 2nd Ethernet card; this is not a frequently-used combination, and the 2nd Ethernet card could stay de-activated, i.e. without a TCP/IP binding, for most of the time.

Another example: When in Europe I use a WLAN USB stick, but when in the US I use a WLAN PCCard. I don't need to have these 2 TCP/IP devices active at the same time, one device can have the TCP/IP binding temporarily removed.

This problem of the max.6 TCP/IP instances became acute just again because I wanted to install a webcam for Skype, but it required another TCP/IP instance for "TCP/IP -> Microsoft TV/Video Connection". So instead of permanently uninstalling a TCP/IP device to make space for the webcam, maybe I can just temporarily remove another TCP/IP instance.

Link to comment
Share on other sites

You might use regshot to compare the registry before and after removing the binding, to find out how and where in the registry it's done. Then set them by hand or using a set to reg files created just for that purpose.

I had looked at the registry, one key with the 6 instances of TCP/IP is HKLM\Enum\Network\MSTCP, but this looks like a tricky procedure. It's probably the last resort if I can't find a special software tool.

Maybe there is a software tool which displays the TCP/IP devices installed plus a box for each device, with a checkmark which TCP/IP device should have TCP/IP bindings :) . Such a tool could also be used for temporarily de-activating TCP/IP devices, e.g. during the installation of software. For temporarily disabling network cards I am using Tihiy's excellent IPTest (Enable/Disable button) , but this program does not remove/add TCP/IP bindings.

When I use Device Manager to "Disable in this hardware profile" the network card, the network card gets a red mark, but its TCP/IP instance stays in Control Panel -> Network.

Edited by Multibooter
Link to comment
Share on other sites

I have checked various shareware sites, but didn't find a software tool to juggle around TCP/IP bindings :(

The only working solution seems to uninstall TCP/IP devices via Add/Remove until 5 TCP/IP devices are displayed in Control Panel -> Network, then to install a 6th TCP/IP device :(

The problem seems to be that the MS Network applet automatically binds the TCP/IP protocol to all network card drivers, starting with the driver of the first TCP/IP device at the top of the Network window, going towards the bottom, until it reaches 6 instances. The automaticity of the MS Network applet does not let you choose which drivers shall be bound to the TCP/IP protocol.

BTW, since the infection with the Tenga virus I have StartUp Organizer continuously monitoring changes in the StartUp settings. When the MS Network applet adds the TCP/IP protocol and wants to reboot, StartUp Organizer reports changes in the registry as follows: Run Registry\All Users\RunOnce grpconv.exe -o

Edited by Multibooter
Link to comment
Share on other sites

Guest wsxedcrfv

Find the file named Nettrans.inf. Most likely in C:\windows\inf.

You should see a MaxInstance entry for the protocol of interest. In the case of TCP/IP, the default will be "MaxInstance=6". I'm not sure what the allowable upper limit is. It could be 8.

Link to comment
Share on other sites

Find the file named Nettrans.inf. Most likely in C:\windows\inf. You should see a MaxInstance entry for the protocol of interest. In the case of TCP/IP, the default will be "MaxInstance=6". I'm not sure what the allowable upper limit is. It could be 8.
This seems to be a good starting point, maybe modifying some .inf may modify how the Network applet assigns TCP/IP bindings.

Here the section in Nettrans.inf:

;****************************************************************************

; TCP/IP

;****************************************************************************

[MSTCP.ndi]

DelReg=MSTCP.ndi.delreg

AddReg=MSTCP.ndi.reg

DeviceID=MSTCP

MaxInstance=6

NETBEUI has the setting MaxInstance=8

Link to comment
Share on other sites

Here the section in Nettrans.inf:

;****************************************************************************

; TCP/IP

;****************************************************************************

[MSTCP.ndi]

DelReg=MSTCP.ndi.delreg

AddReg=MSTCP.ndi.reg

DeviceID=MSTCP

MaxInstance=6

Thanks a million wsxedcrfv. I have changed MaxInstance from 6 to 10, then rebooted, then added the TCP/IP protocol in the Network applet. Upon rebooting all current 7 TCP/IP devices had a corresponding TCP/IP instance, i.e. the Network applet displayed 7 instances of TCP/IP.

To conform to the apparent working limit of 6 TCP/IP instances, I removed then one currently not needed instance of TCP/IP in the Network applet.

The problem of selectively adding TCP/IP bindings appears to have been solved with the following 3 steps:

1) increase the MaxInstance in the TCP/IP section of Nettrans.inf

2) have the Network applet automatically add TCP/IP Bindings to ALL TCP/IP devices, even if this results in more then 6 instances of TCP/IP

3) manually delete currently unneeded instances of TCP/IP, until there is only a maximum of 6

I will try whether after installing the webcam, which adds "TCP/IP -> Microsoft TV/Video Connection", I can in this way create a set of 6 currently active TCP/IP instances.

This seems to be a very elegant workaround, one only has to make sure that there are no more than 6 instances of TCP/IP listed by the Network applet, to avoid unknown problems. Thanks again wsxedcrfv.

Edited by Multibooter
Link to comment
Share on other sites

Microsoft says here (Spanish):

http://support.microsoft.com/kb/551225/es

to increase MaxInstance from 10 (default) to whatever the user wants, but they don't say what the max limit actually is. :-(

Here (Spanish):

http://support.microsoft.com/kb/551199/es

English translation:

http://translate.google.com/translate?u=http%3A%2F%2Fsupport.microsoft.com%2Fkb%2F551199%2Fes&sl=es&tl=en

they say MaxInstance default value is 8, and that the user can increase it, but again, no max value. [?]

According to this MSKB article (Spanish), this works also for Win95 editions [increase from 8 to whatever]:

http://support.microsoft.com/kb/550751/es

More (actually less) info at MSDN (English):

http://msdn.microsoft.com/en-us/library/ff546329.aspx

And finally, here (English):

http://support.microsoft.com/kb/217744

MS actually enumerates the max values, but this contradicts with the other statements above. :blink:

HTH

Link to comment
Share on other sites

Guest wsxedcrfv

And finally, here (English):

http://support.microsoft.com/kb/217744

MS actually enumerates the max values, but this contradicts with the other statements above.

"Increase the MaxInstance entry for the appropriate protocol. Note that the maximum number for this entry is 8 in Windows 95/98/98SE and 10 in Windows Millennium."

Why would ME have a higher limit than 9x?

Link to comment
Share on other sites

@Multibooter: It seems to me that increasing MaxInstance to 8 and letting it stay at 8 for TCP/IP under 9x is a safe bet, in view of the MSKB documents indicated by MDGx.

@wsxedcrfv: There are many places where ME is (sometimes much) better than 9x... That's why 98SE2ME gives one probably the best compromise achivable.

Link to comment
Share on other sites

@Multibooter: It seems to me that increasing MaxInstance to 8 and letting it stay at 8 for TCP/IP under 9x is a safe bet, in view of the MSKB documents indicated by MDGx.

I had actually set MaxInstance to 16 under Win98SE last week, and everything works fine. But I have only 6 instances of TCP/IP displayed by the Network applet, even if 8 TCP/IP devices are currently installed, i.e. I have deleted in the Network applet 2 instances of TCP/IP (i.e. entries beginning with "TCP/IP -> ...", but not their corresponding device entries without the "TCP/IP -> ...").

Eventually I will install more TCP/IP devices, e.g. WLAN PCCards, but I will make sure that the Network applet displays only 6 or fewer instances of TCP/IP. I suspect that MaxInstance could be set to any number, provided that no more than 6 TCP/IP devices are currently "active", i.e have a TCP/IP entry displayed in the Network applet. If I should come across problems because of the additional TCP/IP devices with the setting MaxInstance=16, I'll report it here.

About 2 1/2 years ago, when I was looking into this issue of max. 6 Instances of TCP/IP I came across "http://www.pcmag.com/article2/0,2817,1162371,00.asp": "The new TCP/IP software built into Windows Me removes this limitation [max. 6 instances under Win98], and you can install as many networking features as you want without being forced to remove existing ones." I had also seen 2 1/2 years ago the trick with modifying Nettrans.inf http://www.carricksolutions.com/pppoe/windowspppoe.php#8 but somehow I never followed thru, and it just got buried in my InfoSelect notes :(

There are many places where ME is (sometimes much) better than 9x... That's why 98SE2ME gives one probably the best compromise achivable.
Maybe replacing some Win98-dlls with WinME-dlls might overcome the limitation of 6 instances of TCP/IP.

I don't doubt that Microsoft had good reasons for setting MaxInstance=6 under Win98. One would have to identify what specific problems occur with more than 6 active instances and could then see whether replacing dlls might permit more than 6 instances of TCP/IP (maybe 10?) under Win98.

Edited by Multibooter
Link to comment
Share on other sites

Since I mentioned 98SE2ME, I think I should've also mentioned that the Win ME TCP/IP stack is one of the things from Win ME that actually *cannot* be backported into 9x, exactly because it's too different from the previous implementation. IIRR this is precisely one of the features that were investigated very thoroughly by MDGx, during the development of the 98SE2ME project. Sorry!

Link to comment
Share on other sites

There is another article by Microsoft http://support.microsoft.com/kb/193833

"This error message can occur if you already have six (or more) network adapters installed, and Transmission Control Protocol/Internet Protocol (TCP/IP) is bound to six of the existing network adapters. Windows 98 can bind TCP/IP to only six network adapters at one time."

This info applies apparently only to Win98FE, so possibly there are differences regarding the maximum instances of TCP/IP (=bindings) between Win98FE and Win98SE.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...