Page 1 of 1

Question about removing a USB controller.

Posted: May 4th, 2020, 12:28 pm
by rednecked_crake
This is a bit of a niche request, so I'd understand if no-one can really answer it.

I have 2 game controllers (one is an arcade stick using XInput, the other is a DualShock4). Because a lot of games require 'player 1' to be the controller, and because either the stick or the pad can randomly be assigned #1 or #2 when the PC is booted up, I have to unplug and replug either controller depending on what game I'm playing. It's a bit of a hassle, so I made a batch file that called on Devcon.exe and disabled one and enabled the other with just a click, until it stopped working.

Trying out this program, it works perfectly for disabling the DualShock4. But when trying to disable the arcade stick, it seems as though the DWM (dwm.exe) is hooking into it somehow and preventing it from being disabled. Any ideas for getting around this? Disabling DWM on Windows 10 isn't really feasible (and causes BSOD's from what I've read) and some googling just gives pages of results about Xbox and so on.

Great program either way, might just buy it just to disable the DualShock4. Cheers.

Re: Question about removing a USB controller.

Posted: May 5th, 2020, 9:52 am
by Igor
Hi rednecked_crake,
Have you tried to use the "Forced Stop" button? If yes, and that didn't help, please send me the report from the program.

In order to send the report you should right click to the system tray icon of the program, choose Help -> Report a bug", and in the opened dialog enter your e-mail and a short description of the problem.

Re: Question about removing a USB controller.

Posted: May 5th, 2020, 10:36 pm
by rednecked_crake
Igor wrote: May 5th, 2020, 9:52 am Hi rednecked_crake,
Have you tried to use the "Forced Stop" button? If yes, and that didn't help, please send me the report from the program.

In order to send the report you should right click to the system tray icon of the program, choose Help -> Report a bug", and in the opened dialog enter your e-mail and a short description of the problem.
It does work, but it completely shuts off the Desktop Window Manager (dwm.exe) which I'd rather not do.

I did find a workaround, for anyone who ever stumbles on this with a google search. It looks like DWM hooks into any XInput device on startup, and won't let it be disabled normally. To get around it, you can go into device manager and disable the controllers directly. I just used a utility called DevManView and made a batch file;

Code: Select all


@ECHO OFF

echo.
echo Shutting down...
echo.

:: Disabling hitbox & arcade stick prior to shutdown.

F:\Apps\devmanview-x64\DevManView.exe /disable "USB\VID_1BAD&PID_F03A\114ADCAB"
F:\Apps\devmanview-x64\DevManView.exe /disable "USB\VID_2C22&PID_2303\8730F4EA"

:: Shutting down

shutdown.exe /s /t 00
If you then go into your Group Policy Editor (gpedit.exe), you can go to Windows Settings - Scripts - Shutdown, and have that batch file run whenever you shutdown or restart. Your controllers get disabled and DWM won't hook into them and stop them from being disabled, you can then pick what controller you want to use with a click on next bootup. I have 2 XInput controllers and a DualShock that doesn't get hooked by DWM (because it's a DirectInput device I'm guessing), so it's really neat that I don't have to keep reaching around the PC to swap out USB cables every day now.

I'll keep using this for a week or so to make sure there's no problems and then I'll buy it, cheers!

Re: Question about removing a USB controller.

Posted: May 6th, 2020, 9:30 am
by Igor
rednecked_crake wrote: May 5th, 2020, 10:36 pm It does work, but it completely shuts off the Desktop Window Manager (dwm.exe) which I'd rather not do.
No, the Forced Stop doesn't shut off the processes. It just closes the file connections that a process made to the device. It's that same as if the device is disconnected. So I'd suggest you to try it and if that works you probably do not need the tricks you described. Besides with USB Safely Remove you do not need to use devcon at all, since you can disable (and then enable) a device directly in the menu. Just right click to the device and choose "Disable device":
2020-05-06_12-29-28.png
2020-05-06_12-29-28.png (16.42 KiB) Viewed 70475 times

Re: Question about removing a USB controller.

Posted: May 6th, 2020, 10:53 pm
by rednecked_crake
Hi, I tried to 'Force Stop' and right-click disable device, but I don't think either option does anything. I don't really want to try it with DWN again because it made my desktop flash a few times and Windows explorer didn't work properly afterwards, so I tested it with Steam (it also seems to hook into a controller like DWM does). It just shows this window over and over, I think it's trying to close Steam or the connection but it can't.

It's not a big deal, the batch file works fine really. I don't know if there's any way to close this file connection between an XInput controller and Steam or DWM otherwise.

Re: Question about removing a USB controller.

Posted: May 7th, 2020, 8:19 am
by Igor
rednecked_crake wrote: May 6th, 2020, 10:53 pm I tested it with Steam (it also seems to hook into a controller like DWM does). It just shows this window over and over, I think it's trying to close Steam or the connection but it can't.
rednecked_crake, can you send us the report from the program so that I can investigate why the program cannot forcibly stop the Hitbox device?

In order to send the report you should right click to the system tray icon of the program, choose Help -> Report a bug", and in the opened dialog enter your e-mail and a short description of the problem.

Re: Question about removing a USB controller.

Posted: May 7th, 2020, 12:44 pm
by rednecked_crake
I sent the report.

Re: Question about removing a USB controller.

Posted: May 8th, 2020, 3:55 pm
by Igor
rednecked_crake, thank you!

I've investigated the log files and I can see that the program was able to successfully unlock dwm.exe and stop the device. steam.exe was also unlocked successfully but this program immediately opens a new connection to the device so that USB Safely Remove is not in time to stop the device. We will think what we can do with this in future, and now you if you need you can either add "steam.exe" to automatically terminate\restart the app before and after device removal or just terminate it manually from this dialog:

2020-05-08_18-54-21.png
2020-05-08_18-54-21.png (10.1 KiB) Viewed 70275 times