eGorZ Ковыряние нативных драйверов от Microsoft для USB-флешдисков с помощью нетрадиционного секса и матерных выражений привело к таким результатам:
1. До появления 242975 (Update for 1394 Storage Peripherals in Windows 98 Second Edition) вся обработка подключаемых USB и IEEE1394 накопителей была реализована с помощью драйвера ntmap.sys (и ntmaphlp.pdr), причем требовалась доустановка драйверов для каждого конкретного устройства. Поддержка IEEE1394 вообще была кривой и неполной.
2. После выхода 242975 положение с IEEE1394 значительно улучшилось (кстати, драйвер ntmap.sys значительно упростили), однако поддержка подключаемых USB накопителей из драйвера ntmap.sys (и ntmap.inf) исчезла и теперь доступ к ним мог быть осуществлен только с помощью драйвера стороннего производителя. По видимому предполагалось позднее сделать так, как это было изначально сделано в Windows ME.
3. А в Windows ME было сделано так: в драйвере ntmap.sys (и ntmaphlp.pdr) была реализована поддержка только IEEE1394 накопителей, а поддержку USB накопителей вынесли в usbstor.sys (и usbntmap.sys, usbmphlp.pdr).
4. Повидимому, поскольку Windows Me особой популярностью не пользовался, было решено оставить хоть что-то, что подтолкнуло пользователя к переходу на WindowsMe/2k. Поэтому доделывать нативную поддержку USB накопителей в Windows 98se не стали, хотя технических препятствий для этого никаких не было.
5. Тот вариант, который реализован в nusb10 (и 11) работает так: добавляем usbstor.sys от WindowsMe, подменяем ntmap.sys (и ntmap.inf) на тот который знает про USB накопители (это самый старый - тот что идет в инсталяции Windows 98se). Правим usbstor.inf чтобы он забыл о своем миллениумном прошлом (заменяем ссылки usbntmap.sys и usbmphlp.pdr на ntmap.sys и ntmaphlp.pdr, соотвественно). Устанавливаем и работаем.
Естественно, откат на более старую версию ntmap.sys может повлечь проблемы при работе с IEEE1394 накопителями, однако, пока таких устройств мало, на это можно не обращать внимание. Да и вообще проблемы могут быть, а могут и не возникнуть.
Тут есть один ньюанс: в nusb10 я использовал ntmaphlp.pdr версии 4.10.2222 из инсталяции Windows98se, а в nusb11 - ntmaphlp.pdr версии 4.10.2223 из апдейта 242975. Вроде разницы никакой, но может кто заметил какие глюки?
6. Попытка использовать драйвера из WindowsMe напрямую после установки 242975 результата не дает - устройства видятся, панелька безопастного отключения в трее появляется, но сам накопитель с восклицательным знаком.
7. Попытка использовать драйвера из WindowsMe напрямую без установки 242975 приводит в полному зависанию системы (что естественно, два драйвера - ntmap.stys и usbntmap.sys - пытаются разобраться с одним устройством).
8. usbstor.sys грузится и работает только от WindowsMe (версии 4.90.3000), самый ранний из Windows2k только грузится, но не работает. Все более поздние версии не грузятся вообще (ntkern.vxd отказывается грузить).
9. Вывод такой: так как сделано в nusb10(11) - пока, к сожаленью, единственно возможный способ использовать драйвер от Microsoft. Правка usbstor.inf расширяет его возможности.
10. Другой вариант - искать наиболее универсальные драйвера от стороннего производителя. Однако таких я пока не видел.