nefarius / ViGEmBus

Windows kernel-mode driver emulating well-known USB game controllers.
https://docs.nefarius.at/projects/ViGEm/
BSD 3-Clause "New" or "Revised" License
3.16k stars 290 forks source link

Driver not working on Windows Server 2019 #85

Closed benjaminburkhardt closed 3 years ago

benjaminburkhardt commented 3 years ago

Description I installed the latest version (ViGEmBus Setup 1.17.333) on a new Windows Server 2019 instance on AWS EC2. Installation was successful and driver is visible in Device Manager. Unfortunately I cannot communication with the driver using the .NET API. The following error appears when connecting: System.ComponentModel.Win32Exception: 'The operation completed successfully' My program is working perfectly on my local Windows 10 machine with the same driver...

To Reproduce

  1. Get new EC2 instance with Windows Server 2019
  2. Install driver
  3. try to .Connect() a new instance using .NET API.

Screenshots image

System details (please complete the following information):

Additional info I also tried to install the previous release (ViGEmBus Setup 1.16.116). With this version, the program runs without errors, BUT the commands do not come through...

nefarius commented 3 years ago

Server 2019 lacks the mandatory Xbox 360 drivers, have you installed them? Is the bus driver even present in Device Manager? Call stack?

benjaminburkhardt commented 3 years ago

I just tried to install the Xbox 360 drivers from, here (https://www.techspot.com/drivers/driver/file/information/17648/) but this did not help. Is there another driver that I could try?

In the Device Manager I can see that the Nefarius Virtual Gamepad Emulation Bus is installed. And as long as my Visual Studio Application is not stopped and stuck at the .Connect() command the "Other Device" Virtual Xbox 360 Controller gets visible. Maybe that helps? image

The Call Stack is not very helpful: image

Thanks a lot for your help!

Update: I also tried to move the driver from my Win10 machine by copying xusb22.inf and xusb22.PNF in C:\Windows\INF as well as xusb22.sys in C:\Windows\System32\drivers to the server. Then I tried to install the driver manually and get the following message: image

nefarius commented 3 years ago

Yeah, as I said, Xbox 360 Driver is missing so the virtual controller can't boot and therefore nothing will work as expected.

Please don't just randomly copy parts of drivers around like that, it's a brilliant way to test if you have a good backup 🙂

Use the archived copy of the X360 driver instead.

benjaminburkhardt commented 3 years ago

Great this was the missing piece! 😉 Thank you!

akemin-dayo commented 2 years ago

The ViGEmBus installer (not the driver) no longer supports running on Windows Server OSes as of 1.21.442.

Starting from this version, you will have to manually install ViGEmBus using the instructions in #153 if you are using Windows Server.

(※ Please be respectful of the author's decision.)