I am completely new to reverse engineering. I have a Razer Atrox Xbox One Fight Stick that I purchased recently. It does not work with windows 10 with the drivers installed by Microsoft version (10.0.17134.1), but when I revert back to an older version (6.2.11059.0), 6 of the 8 buttons on the fightstick work, along with the stick itself. I'm trying to understand why 2 of the buttons still do not work. I had done some reading on the Microsoft page about USB and how it works, but i'm not sure if all that I am reading is relevant to my goal. Can someone help point me in the right direction on how I could go about writing my own drivers for this device? Thank you!
You should read about USB HID devices. Also you need a USB sniffer to capture the traffic and see how the fight stick encodes key press events. After you understand how the USB data exchange is done, you'll need to reverse engineer the driver code. But I would start from learning how to implement USB HID driver from WDK examples first, so that you know what to look for while reversing Microsoft's driver.
The problem is that even when you know how to patch the driver, you won't be able to run it after you've patched it, due to all drivers a digitally signed now. And if your standard USB HID driver fails to load you're going to lose the mouse and keyboard, due to Microsoft uses one driver for all HID devices. There are ways to overcome this problem like signing the patched driver with your own certificate which you add as trusted to your system. But such step makes your system exposed to the malware.
So from my perspective, I think that reversing and implementing your own USB HID driver for the fight stick is the more reliable way to solve the problem.