If your USB device is written according to HID specifications, you can interface it directly. Google around for it. But if you are talking about interfacing any other or generic usb devices, you would need a usb driver. A user-mode application would not do. Check up on DDK. If you are really keen, Walter Onay's book on WDM driver development is a good starter.