The problem the older versions of USBD.LIB solve is this. A mistake was
made in the Win98 version of USBD.LIB, such that three functions
(USBD_CreateConfigurationRequestEx,
USBD_ParseConfigurationDescriptorsEx, and USBD_ParseDescriptors) were
exported from USBD.SYS under the __stdcall decorated names instead of
the undecorated names. Versions of USBD.SYS from ME through XP export
these functions under *both* names. The version of USBD.LIB in the 98
and 2K DDKs uses the decorated names. The XP and later versions of
USBD.LIB, except for the special copy mentioned above, use only the
*undecorated* names. Thus, a driver built with the regular USBD.LIB in
the XP DDK will not run on Windows 98/Me because of the mismatch between
import and export names. A driver built with the older USBD.LIB will run
on all current platforms.
--
Walter Oney, Consulting and Training
Basic and Advanced Driver Programming Seminars
Now teaming with John Hyde for USB Device Engineering Seminars
Check out our schedule at http://www.oneysoft.com