* ARCHIVED PAGE * WinSock for Windows 95 (updated 14th March, '98)

An Introduction.

This page is provided for those of you who don't get weak at the knees when it comes to fiddling around with the guts of Windows 95. A few colleagues have had problems using some Windows 95 games over the Internet - connections failing, Windows crashing, but more often than not fatal exceptions in one VxD (virtual device driver) or another.

A little bit of twiddling, a few files thrown around here and there and - hey presto - no more crashing PC. It turned out that the game connections were much more stable when I upgraded the Dial-Up Networking and TCP/IP subsystems on the PC. Consequently I decided to bite the bullet and post the system updates published by Microsoft on GWeb in the hope that they'll help other users.

As usual, the information I'm providing here is the result of my own work, and I won't recommend anything that hasn't worked for me. There are a few things to watch out for during these changes, but I'll mention them as I go along. All the links on this page will open inside the GWeb pages, so you can easily flip between them and this page.


Where this stuff comes from.

All the update files here, apart from the WinSock 2 installation, are posted by Microsoft on the Download&Trial Center and Windows 95 Updates and Utilities pages. WinSock 2 can be found buried within ws295sdk.exe, which is the current beta of the full WinSock 2 SDK. Yes ... WinSock 2 is currently a beta product. I've been using it for a good month or two without any problems, but if you're not happy running beta software, leave it well alone. (A note to developers - check out this FTP directory for Winsock 2 API definitions etc.)


A Word of Warning.

All the information and advice on this page assumes that you're using the standard Microsoft implementation of WinSock - if you've installed anything that replaces WinSock with it's own version (perhaps a custom dialler like AOL), leave this lot well alone. The same applies for applications that hook in to WinSock - it's probably best to uninstall such applications, upgrade the DUN and TCP/IP files, and then reinstall the hooking application. If any of this sounds iffy to you, you're probably best off leaving your system as it is.

I'm also assuming that you don't go around removing files and directories from your Windows directory ... what d'you mean you didn't think it did anything ? DOH !


Dial-Up Networking.

OK, that's the disclaimers out of the way ... onto business. The first thing you'll want to do is make sure you're running version 1.2 of Microsoft Dial-Up Networking (aka MS-DUN). If you've previously installed v1.2, you may find that it's the beta release, which doesn't help... There are a few ways to check which version you're running: the beta self-extracting executable (msdun12.exe) is 1.16Mb, version number 4.10.1353. The full release self-extracting executable (also msdun12.exe) is 1.38Mb, version 5.10.1537. Both versions create a subdirectory called MSDUN in Windows, and leave two files there - msdun.cab (beta: 624,101 bytes, full: 890,883) and wsockupd.exe (beta: 227,472 bytes, full: 185,568). The full release also creates an uninstall entry in Control Panel | Add/Remove Programs entitled 'Dial-Up Networking Upgrade 1.2'. Make sure you're running the full release - you can grab it from the link below. Download, install, and restart.

*Update*: Microsoft have updated the upgrade to v1.2b, to get around a future-version-protection problem in v1.2. You can read all about it on the MS-DUN Download page. I've changed the link to the upgrade to hook you into this page - it also gives you a link to the first Winsock update you'll need before you install the upgrade. There's also more information about the upgrade itself in Microsoft's Dial-Up Networking FAQ, which I strongly recommend you read. If you've already installed v1.2, by the way, you can install v1.2b right on top of it.

One word of caution - be sure to make copies of any scripts you might be using to get into your accounts. You'll probably lose them during the upgrade to v1.2.

Of course, if you've got OSR2, you may already be running v1.2. Check the properties of one of your Dialup Networking connections - if you've got a 'Scripting' tab, you're running v1.2.


Microsoft Dial-Up Networking

File Date Description Info Size
MS-DUN Download 27.10.97 Microsoft Dial-Up Networking upgrade page (1.2b). Dial-Up Networking FAQ ~1,400Kb


The Original Winsock

OK, so you've got MS-DUN up to version 1.2b. Scripting is now built in to the connection properties and your system tray shows two little flashing monitors when you're online. Time to update the TCP/IP protocol stack.

The two files below are self-installing updates for TCP and IP respectively - Microsoft clearly state that these versions are not fully 'regression tested', so if you're unsure about installing them on your system, check the Knowledge Base articles I've linked to which describe the problems and solutions that the updates were released for.

On one or two systems, I've had problems installing both files in the same 'session' - to be safe, install one file, restart Windows, install the other, then restart Windows again. If you want to stick with the original Winsock, you're now up to date!

If you're going to upgrade to Winsock 2, I'd suggest you get Winsock 1 up to date first anyway - if you have problems with Winsock 2, you can go back to Winsock 1 - so it might as well be up to date if you do! What's more, it's what I've done on each system I've updated, and it always worked that way...


WinSock

File Date Description Info Size
vtcpup11.exe 12.03.97 Updated TCP/IP for Windows 95 without WinSock 2. Q177539 152Kb
vipup11.exe 21.01.98 Updated TCP/IP stack for Windows 95 without WinSock 2. Q154174 163Kb


Microsoft's Winsock 2

Now for the meaty bit ... the new Winsock. The first of the three files below is the Setup program for Winsock 2, as bundled with the Winsock 2 SDK by Microsoft. Check out the Knowledge Base article if you want to read more about this beta software ... I've been running it for a few months now, and everything seems fine. The only problem I've found is with the 'uninstall' batch file - that's all explained below.

The other two files are the Winsock 2 equivalents of the fixes posted above for Winsock 1. Download all three, then install them one by one, restarting Windows each time. Obviously, you should install ws2setup first - then, vtcpup20 and vipup20. Sorted !

An important note ... during the installation, ws2setup will create a new subdirectory 'WS2BAKUP' in Windows. Do not remove it - it has all the files you'll need if you want to go back to Winsock 1. Careful, now !


WinSock 2

File Date Description Info Size
ws2setup.exe 06.06.97 WinSock 2 Setup for Windows 95 (extracted from the Winsock 2 SDK). Q177719 881Kb
vtcpup20.exe 12.11.97 Updated TCP/IP for Windows 95 with WinSock 2. Q177539 155Kb
vipup20.exe 20.11.97 Updated TCP/IP stack for Windows 95 with WinSock 2. Q174095 173Kb


Removing Microsoft's Winsock 2

In other words, how to go back to Winsock 1 if Winsock2's not for you. This is important. Even if you just download the files and think about installing them later, copy this part of the page and keep it safe. If things go pear-shaped, you won't be able to get back online to read this part of the page !

Basically, since it's all beta anyway, all Microsoft supplies for you to uninstall is a simple batch file ws2bakup.bat, in the WS2BAKUP subdirectory under Windows. Unfortunately, this batch file cannot work, whether you run it under DOS or Windows. My version of the file (Windows is in C:\WINDOWS on my PC) is as follows -

REM This is the Winsock2 backup batch file,
REM created 11/15/1998 08:27:20.
REM Run this batch file to restore the Winsock files
REM that existed prior to running Winsock2 setup.
attrib -r C:\WINDOWS\SYSTEM\msafd.dll
del C:\WINDOWS\SYSTEM\msafd.dll
attrib -r C:\WINDOWS\SYSTEM\wsock2.vxd
del C:\WINDOWS\SYSTEM\wsock2.vxd
attrib -r C:\WINDOWS\SYSTEM\afvxd.vxd
copy C:\WINDOWS\ws2bakup\afvxd.vxd C:\WINDOWS\SYSTEM\afvxd.vxd
attrib -r C:\WINDOWS\SYSTEM\wshtcp.vxd
copy C:\WINDOWS\ws2bakup\wshtcp.vxd C:\WINDOWS\SYSTEM\wshtcp.vxd
attrib -r C:\WINDOWS\SYSTEM\vtdi.386
copy C:\WINDOWS\ws2bakup\vtdi.386 C:\WINDOWS\SYSTEM\vtdi.386
attrib -r C:\WINDOWS\SYSTEM\vtcp.386
copy C:\WINDOWS\ws2bakup\vtcp.386 C:\WINDOWS\SYSTEM\vtcp.386
attrib -r C:\WINDOWS\SYSTEM\vip.386
copy C:\WINDOWS\ws2bakup\vip.386 C:\WINDOWS\SYSTEM\vip.386
attrib -r C:\WINDOWS\SYSTEM\vudp.386
copy C:\WINDOWS\ws2bakup\vudp.386 C:\WINDOWS\SYSTEM\vudp.386
attrib -r C:\WINDOWS\SYSTEM\vdhcp.386
copy C:\WINDOWS\ws2bakup\vdhcp.386 C:\WINDOWS\SYSTEM\vdhcp.386
attrib -r C:\WINDOWS\snmpapi.dll
del C:\WINDOWS\snmpapi.dll
attrib -r C:\WINDOWS\system\mswsosp.dll
del C:\WINDOWS\system\mswsosp.dll
attrib -r C:\WINDOWS\system\wsock.vxd
copy C:\WINDOWS\ws2bakup\wsock.vxd C:\WINDOWS\system\wsock.vxd
attrib -r C:\WINDOWS\system\rnr20.dll
del C:\WINDOWS\system\rnr20.dll
attrib -r C:\WINDOWS\system\wsock32.dll
copy C:\WINDOWS\ws2bakup\wsock32.dll C:\WINDOWS\system\wsock32.dll
attrib -r C:\WINDOWS\system\ws2thk.dll
del C:\WINDOWS\system\ws2thk.dll
attrib -r C:\WINDOWS\system\ws2_32.dll
del C:\WINDOWS\system\ws2_32.dll
attrib -r C:\WINDOWS\system\ws2help.dll
del C:\WINDOWS\system\ws2help.dll
attrib -r C:\WINDOWS\system\wsasrv.exe
copy C:\WINDOWS\ws2bakup\wsasrv.exe C:\WINDOWS\system\wsasrv.exe
attrib -r C:\WINDOWS\system\mswsock.dll
del C:\WINDOWS\system\mswsock.dll
attrib -r C:\WINDOWS\system\ndis.vxd
copy C:\WINDOWS\ws2bakup\ndis.vxd C:\WINDOWS\system\ndis.vxd
attrib -r C:\WINDOWS\system\msvcrt.dll
copy C:\WINDOWS\ws2bakup\msvcrt.dll C:\WINDOWS\system\msvcrt.dll
attrib -r C:\WINDOWS\sysbckup\winsock.dll
copy C:\WINDOWS\ws2bakup\winsock.bkp C:\WINDOWS\sysbckup\winsock.dll
attrib -r C:\WINDOWS\winsock.dll
copy C:\WINDOWS\ws2bakup\winsock.dll C:\WINDOWS\winsock.dll
delw2reg.exe addafvxd

That may look like a load of toss, but in principle it's OK. The problem is this - if you're running Windows, most of the files are flagged as 'in use' or 'shared', so most of the commands will fail, leaving you in a right mess. The last command, delw2reg, returns your System Registry to Winsock 1 - but half the system's files are messed up or missing, due to the failure of the ATTRIBs, DELs and COPYs before. DOH!

OK, I hear you say, so why not just run it in DOS ? Because delw2reg won't run in DOS, that's why. And if you've run it in Windows, it's already too late...

So - the solution is to run the batch file in two stages - or rather, to seperate the file into two parts and run one in DOS, the other in Windows. This procedure worked for me...

As I said, this procedure worked fine for me. Double-check everything while you're doing this - it's your Dialup Networking that's at stake here....

On the PC which I sorted out where WS2BAKUP.BAT was run under Windows, I basically went through the commands in that batch file one by one, under a true DOS prompt, to get it back to normal. I'll say it once again - if you're not happy dealing with Windows and DOS at this level, you're probably better off leaving Winsock 2 alone ...


That's all folks ! Good luck, and happy online gaming !