The logical step to enable the detection of as many as possible USB devices is to add the VID and PID of new devices into the USBSTOR.INF, but doing so will quickly fill up the 64 kB limit that Win98SE can handle INF files. In spite of using abbreviation “DD” instead of “DeviceDesc”, Maximus-Decim has reached 62 kB in his NUSB 2.2.1!
To work around it I use another approach as it is done in WinXP. Most of the USB storage devices, such as flash disk, thumbdrive etc. are compatible to the generic driver, hence for the detection of those kinds of devices I rely on the following lines in the USBSTOR.INF:
[Generic]
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK,USB\Class_08&SubClass_02&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK,USB\Class_08&SubClass_05&Prot_50
%GenericBulkOnly.DeviceDesc%=USBSTOR_BULK,USB\Class_08&SubClass_06&Prot_50
[Strings]
Generic.Mfg = "Compatible USB storage device"
GenericBulkOnly.DeviceDesc = "USB Mass Storage Device"
We need to specify the VID and PID only for the devices that do not fall into that generic category, e.g., digital camera, USB IDE Hard Drive and so on. With that done, we can have a small USBSTOR.INF of only 17 kB, giving ample of space to add those non-generic devices.
There is a tradeoff though, if you plug in a new device to the system for the first time, Windows will ask you to click “OK” to proceed installing the generic driver. But that should not be too much a problem, right?
With this solution implemented it can detect all my thumbdrives of different brands, it can even successfully detect card reader, the most recent I use is a Neodio based 45-in-1 card reader that I tried already for CF, SD, MMC and MS Pro flash cards.
For those of you that like to follow my way but do not have access to WinXP, I attached herewith that small USBSTOR.INF to try (at your own risk though).