SCSI Miniport -> USB on XP

To support a custom USB mass storage device I have a SCSI Miniport that
passes read/write requests (via IoCallDriver) to a USB device driver built
using the DriverWorks 2.5 libraries.

I have this setup working great on Win98 and Win2K, but it has many weird
and wonderful problems on XP (mostly crashing due to apparent memory
corruption).

Is this architecture still recommended/supported on XP? Or is there a better
way to support a USB storage device that is not compliant with the USB Mass
Storage specification?

Do I need to build against the XP DDK? Or can I build with the Win2K DDK and
Visual Studio C++ 6.0?