Project, Where to start, virtual usb device, controller emulation

Hello

I'll get right into it
I am planning on starting a project. I want to create a driver/software that allows the user to map the buttons on any usb game controller to a virtual controller. That virtual controller will act as a real controller for programs such as emulators and other games. I also want the software to detect when controllers are plugged in and setup a virtual controller from a user set profile.

This will hopefully allow me to build an flawless experience where the user can plug in a controller and that controller will automatically be setup with the user not having to rebind all the different keys in games/emulator settings.

Now in this thread I only want to discuss where to look to find the right documentation to do this. I'm not concerned with the actual implmentation, just the right APIs, I know it involves windows driver programming and xinput and direct input. Other than the msdn website documentation (I always find navigating that website to be difficult), where should I look?

I know I will need to do the following.

mount a virtual usb hid device (to act as a virtual controller)
detect both xinput and directinput (so all controllers can be reconsidered and moved)
I want to reduce lag as much as possible, so I was think of programming a driver (which I've never done before)

Any advice would be great
And if this is the wrong topic to for the forum please let me know
Topic archived. No new replies allowed.