Windows NT 4.0 and USB.
Introduction:
Microsoft have not, nor will they ever, provide generic USB support in any form for NT 4.0 - See Knowledgebase article 196661 (Title: Windows NT 4.0 Does Not Support Universal Serial Bus) for the official statement on this subject.
This is merely a COMMERCIAL decision, and provides yet another lever to assist them into 'strongarming' everyone into a needless upgrade to W2k or XP. I suspect Microsoft were fearful that if NT 4.0 worked TOO well, nobody would buy Win2k or XP ! (Sorry Microsoft I still won't, and never will !!)
The reality is that NT 4.0 is quite capable of using USB devices with appropriate support code. (device drivers and services)
Other Manufacturers:
A lot of USB devices from the more progressive and innovative manufacturers come with such driver support for Win NT4. From all reports to date these drivers work satisfactorily for the device concerned. They are certainly not a 'one size fits all' approach though.
The web site: http://www.usbman.com/Win NT USB Guide.htm summarises a lot of this info.
Because a lot of these drivers expect to be 'the only kid on the block' it is extremely likely that attempting to simultaneously use more than one device in this manner on a system will lead to instability or a crash as the drivers fight for ownership of resources.
Several commercial organisations were, or still are, developing USB stacks allowing more generalised support of USB on NT 4.0. The ones I am aware of are:
The capabilities and costs of these products vary - you need to read closely to discover if their product will do what you intend.
Public Domain Efforts:
There is an open source public domain project being developed by a person in the PRC - his home page is: WoodHead - I haven't had a chance to investigate this in detail yet. From the reports made in the 'Guest Book' on the site, many people are having success using this approach as well.
Results:
I have personally seen the BSquare solution functioning to communicate with a PDA cradle - it worked flawlessly.
My Own Experiments:
I have owned and used an IONetworks WatchportV web camera since 2001. The IONetworks install could not have been a simpler, it installs new .sys drivers to access the USB port, and does so using the correct method which doesn't even require a system reboot. (I wish other software writers would READ the rules - it could save us poor end users an awful lot of needless reboots !) The Watchport camera works perfectly and provides the best image quality I have ever seen for a 'consumer grade' web camera.
After having used the camera for about 18 months, it was pointed out to me that the IONetworks solution (the camera install is a subset of the full IONetworks stack) is fairly generic, and in fact includes drivers for several USB devices, not just the basic stack and webcamera drivers that I had been using.
You can find Version 2.35 here. It is supposedly only for use on selected model Dell PCs, but (to date) it has functioned perfectly on all Intel and VIA chipset motherboards that I have tested it on.
Recently a newer version based on IONetworks V2.55 code has been released by Dell. You may wish to experiment using this version instead. (I have not tried this myself) It can be downloaded from here.
Alternately, the full IONetworks (now a part of Digi International) stack can be obtained from the Digi Server. The latest package (at the time these notes were written) is i4usb406.exe There is some additional information and bug reports about this IONetworks software at Alter.org.au here This solution is presented with an Installer package to ease adding the USB drivers to your system. The package includes (with my suggestions for installation):
- Basic USB Stack - Required
- USB Hub Driver - Required
- USB Webcamera Driver (Supplied by ViCam) - Optional (only needed for the 3Com Home Connect camera supplied by IONetworks)
- USB Mass Storage Driver (supports USB connected Hard Disk Drives, 'Flash' Drives etc..) - Suggested
- USB Removable Media Driver (supports USB connected CD/DVD ROM drives etc...) - Suggested
- USB HID (Human Interface Device - ie: Mice and Keyboard) Driver - Optional
You may install as many or as few of these as you see fit. A detailed explanation of the approach and features of the IONetworks USB stack and support drivers is available on the Information page at the IONetworks website. As this FAQ points out, the IONetworks USB solution is binary compatible with the Win2k USB stack supplied by Microsoft, so (in theory) Win2k drivers for USB devices can be employed on a NT4 system using the IONetworks stack. This theory has not been tested personally.
I have been most pleased with the performance of the IONetworks solution. USB devices are recognised and added to the system 'on-the-fly' in basically the same manner as later PnP OSes like Windows 2000 would present it. The USB access is reliable and fully utilises the speed of the USB Bus. (Note that only USB 1.1 at 12Mbps is supported - for USB 2.0 speeds try Woodhead's solution mentioned previously)
Alter reports that the latest IONetworks stack (V4.06 or later) is capable of USB 2.0 speeds (480 Mbps) but I have not personally confirmed this claim.
A simple diagnostic programme is included in the IONetworks package that allows you to see the 'USB Tree' and what hardware devices are connected. Information presented includes USB Device Manufacturer, Model and Serial Numbers, as well as what driver file is being used to access them.
IMPORTANT NOTES on Mass Storage Devices (eg: Flash Memory Keys, USB External Hard Disk Drives etc..):
- It is vitally important that mass storage devices be correctly unmounted from the system prior to being unplugged. Failure to observe the following steps may result in corruption of the contents stored on the USB device, and may produce warning messages like "Lost Delayed Write Data" from NT4.0
The procedure to unmount a mass storage device on the IONetworks stack is fortunately VERY simple:
- Right mouse click on the drive letter allocated to the USB device in the Explorer window, then select "Eject" from the context menu displayed.
- If no errors are reported, it is safe to unplug the USB device.
- The drive letter assigned will disappear from the Explorer window once the device is unplugged.
- Possible Problems Unmounting a Device:
- If NT4 reports "An Error was Encountered Trying to Unmount" when you select "Eject", you may have been too hasty with your request - data may still be in the process of being written, or one or more files on the USB device may still be open. Check these conditions and remedy if necessary - then repeat the "Eject" operation.
- If you try to access the device after it has unmounted NT4 will report "Device is Not Ready".
- If you try repeat the eject command, AFTER the device is already unmounted, NT4 will report "An Error was Encountered Trying to Unmount".
- On some USB devices, when correctly unmounted, the "Access Light" (that indicates data transfer) may extinguish, on other devices it may not - unfortunately this is not a reliable indicator.
- Larger size USB storage devices (Flash Memory Keys and External Hard Disk Drives) may initially present you with problems when you attempt to access them - most devices with more than 2GB of storage space are supplied pre-formatted using the FAT32 file system - NT4.0 DOES NOT natively recognise FAT32. In this situation the USB device will be allocated a drive letter (ie: NT4 will mount the device), but you will receive the error message "Unrecognised File System" when you attempt to open it. There are two possible solutions:
- Reformat the device using the NTFS file system. (Simple - Right mouse click on the letter allocated to the device, then select "Format" from the context menu displayed. Ensure you choose NTFS as the file system when formatting - CAUTION: Reformating a USB device will of course DESTROY any data currently stored on it.)
- Add a FAT32 file system driver to NT4. (More effort required, but possible)
CAUTION:
I would suggest you avoid installing the HID driver from the IONetworks package unless you are planning to use ONLY USB mice and keyboards. The HID driver appears to conflict with the Microsoft supplied drivers for PS2 mice and keyboards and may cause problems. Symptoms of this interaction include loss of status lights (Caps Lock, Num Lock, Scroll Lock) on a PS2 keyboard, or complete loss of mouse and/or keyboard functionality. Honestly, I believe PS2 is a better connection standard for these peripherals, and insures a minimum of potential problems.
Conclusion:
I wish people would stop making comments like 'USB is not supported under NT4' - If you must comment please make it accurate, example: 'Microsoft have made the commercial decision not to provide NT4 USB support - but some manufacturers provide support for specific USB devices on NT4.'
Acknowledgements:
Thanks to Karl-Stephen Werkmeister, Alter and Kiilk for additions and corrections on this page.
All promotional photographs and advertising material, corporate names and logos, product names, trade names, trademarks and registered trademarks are the property of their respective owners, and are acknowledged as such.
This information is maintained by ZCM Services, Australia. Whilst every care is taken in preparation, I accept no responsibility for errors or omissions. Use the information presented on this site AT YOUR OWN RISK.
Last Update April 7, 2010 at 8:40 PMAEST.