Your code is not checking the return value of usb_control_msg. Are you sure it succeeded?
WinUSB and the SetupAPI are complicated, so I recommend that you use the Maestro’s virtual COM port. Here is some example code that reads the position of a servo, using Serial+C+Windows:
Just remember to configure your Maestro’s serial mode to be USB Dual Port.