We have experienced that the game pads sometimes needs some time to initialize them self. Try waiting half a second before initializing the game pads.
E.g.
void __cdecl main() {
InitD3D();
Sleep(500);
if (InitGamepad() == 0)
RebootToDash();
while (TRUE) {
Render();
d3d_device->Present(NULL, NULL, NULL, NULL);
}
}