What Is ViGEmBus? The Driver Behind XOutput, Explained (2026)

Short answer: ViGEmBus (short for Virtual Gamepad Emulation Bus) is a specialized Windows Kernel-Mode Driver Framework (KMDF) system driver that enables user-mode software to synthesize fully compliant virtual gamepads. Rather than spoofing games via memory hacking or DLL injection, ViGEmBus creates genuine virtual hardware nodes in Windows Device Manager. Operating system subsystems (such as DirectX, XInput, and DirectInput) interact with these virtual nodes identically to genuine physical Microsoft Xbox 360 controllers or Sony DualShock 4 pads. It serves as the foundational kernel bridge powering XOutput, DS4Windows, modern x360ce, Sunshine/Moonlight streaming, and Parsec.

2026 Driver Architecture Status: ViGEmBus reached its final release at v1.22.0 (WHQL certified by Microsoft). While project creator Benjamin Höglinger (Nefarius) formally archived the repository in late 2023, ViGEmBus v1.22.0 remains fully compatible and operational on Windows 10 and Windows 11 23H2 / 24H2 with Hypervisor-Protected Code Integrity (HVCI) enabled.

Executive Summary — The Kernel Backbone of PC Controller Emulation

Before virtual bus drivers existed, PC gamers with non-standard gamepads had to rely on fragile user-space DLL hooking. Tools would drop custom-compiled xinput1_3.dll wrappers directly into game directories. As documented in our XOutput vs x360ce technical breakdown, that legacy model suffered from catastrophic flaws: it crashed with 32-bit/64-bit binary mismatches, failed completely on encrypted PC Game Pass titles, and triggered immediate anti-cheat bans.

ViGEmBus solved this paradigm permanently by shifting controller virtualization down to Ring 0 (Kernel Mode). The table below outlines its fundamental technical specifications:

Specification Attribute Technical Value / Driver Detail
Driver Binary Name ViGEmBus.sys (Kernel-Mode Driver Framework, KMDF 1.15)
Primary Developer Benjamin Höglinger-Stelzer (known online as Nefarius)
Final Release Version Version 1.22.0 (Release Date: December 2023; Archived Repository)
Target Virtual Devices Microsoft Xbox 360 Controller (XUSB) & Sony DualShock 4 (DirectInput/HID)
Hardware Bus Location Root\System\0000 (System Devices: Virtual Gamepad Emulation Bus)
Virtual Hardware IDs USB\VID_045E&PID_028E (Xbox 360) / USB\VID_054C&PID_05C4 (DS4)
Security & Attestation Microsoft Hardware Quality Labs (WHQL) signed; compatible with HVCI / Memory Integrity
Client Libraries ViGEmClient.dll (C/C++), Nefarius.ViGEm.Client (.NET NuGet library)

Understanding Windows Driver Architecture and the Need for a Virtual Bus

To grasp why ViGEmBus is indispensable, one must examine how the Microsoft Windows operating system categorizes and trusts input hardware.

Windows enforces a strict boundary between User Mode (Ring 3) and Kernel Mode (Ring 0). An unprivileged user-mode desktop application (such as XOutput, Chrome, or Steam) cannot simply broadcast an arbitrary memory structure and declare: “An Xbox 360 controller is now connected to Port 1.” The operating system’s Plug and Play (PnP) manager will disregard it completely, because no physical or virtual bus has enumerated the device.

In standard Windows operation, genuine hardware enumeration flows as follows:

  1. You connect a physical controller into a motherboard USB socket.
  2. The USB Host Controller Driver (USBPORT.SYS) detects a voltage change on the data lines.
  3. The Windows PnP Manager queries the hardware for its Device Descriptor (Vendor ID, Product ID, and HID Report Descriptor).
  4. Windows loads the appropriate functional driver: for an Xbox controller, it loads xusb22.sys; for a standard DirectInput controller, it loads HIDClass.sys and HIDUSB.SYS.
  5. DirectX and game engines query XInput or DirectInput APIs, which read data directly from the system driver stack.

ViGEmBus operates as a Virtual Bus Enumerator. Rather than representing physical copper traces or USB silicon, ViGEmBus.sys installs as a root bus driver. When user-mode software commands it to spawn a gamepad, ViGEmBus dynamically creates a Physical Device Object (PDO) directly in the Windows kernel device tree. Windows believes that a genuine physical bus has detected a newly connected controller.

Internal Engineering of ViGEmBus.sys and the IOCTL Bridge

The communication channel between user-mode applications and the kernel bus is engineered around the Windows I/O Control (IOCTL) interface. The architectural flow is illustrated below:

[ Physical Hardware: DirectInput Pad / Wheel / Joy ] | (DirectInput / HID Interrupt) v [ User Mode (Ring 3): XOutput.exe / DS4Windows.exe ] | | 1. DeviceIoControl(IOCTL_XUSB_SUBMIT_REPORT) v [ Kernel Mode (Ring 0): ViGEmBus.sys ] | | 2. Virtual PDO Instantiation & Ring Buffer Dispatch v [ Microsoft System Driver: xusb22.sys (Xbox 360) / hidclass.sys (DS4) ] | | 3. XInputGetState() API Response v [ Game Process: Elden Ring / Cyberpunk 2077 / Forza ]

1. User-Mode Client Abstraction

User-mode utilities do not communicate with the raw driver directly; they link against the official client library (ViGEmClient.dll or its managed .NET wrapper). When XOutput launches, it initializes the client by acquiring a Win32 file handle to the bus device interface:

CreateFile("\\.\ViGEmBus", GENERIC_READ | GENERIC_WRITE, ..., OPEN_EXISTING, ...)

2. Dynamic Virtual Device Allocation

When the user clicks “Start” in XOutput, the software dispatches an allocation IOCTL (IOCTL_XUSB_PLUGIN). The driver responds by dynamically attaching a child PDO to the bus. Windows immediately launches its PnP device discovery pipeline, associating the node with Microsoft’s certified driver (xusb22.sys).

3. Real-Time Report Submission

As the user manipulates sticks or presses buttons on their physical pad, XOutput maps those inputs into a standard XUSB_REPORT struct containing 16-bit analog stick values, 8-bit trigger depths, and a 16-bit digital button bitmask. This struct is passed across the user/kernel boundary via IOCTL_XUSB_SUBMIT_REPORT. The driver queues this data into an internal ring buffer, updating the virtual controller state within fractions of a microsecond.

4. Force Feedback (Vibration) Reverse Channel

The bridge operates bidirectionally. When a game engine instructs the controller to vibrate, it calls XInputSetState(). Microsoft’s xusb22.sys formats an output report and passes it down to ViGEmBus.sys. The bus driver triggers a kernel asynchronous completion routine, passing the rumble payload (Left/Right motor speeds from 0 to 255) back to XOutput via an awaited IOCTL (IOCTL_XUSB_REQUEST_NOTIFICATION). XOutput then translates this into DirectInput force feedback (force feedback mechanics guide).

The Evolution from ScpVBus to ViGEmBus and Nefarius VirtualPad

The journey of controller emulation on Windows reflects over a decade of community engineering:

Era / Driver Name Architectural Strengths Critical Limitations & Fate
ScpVBus (2012–2016)
Legacy
Pioneered virtual Xbox 360 controller emulation for Sony DualShock 3 pads (Scarlet.Crush / ScpToolkit). Severely unstable: BSOD crashes under high packet concurrency, lacked WHQL signature, permanently broke Windows Bluetooth stacks. Deprecated.
ViGEmBus (2017–2023)
Current Standard
Engineered from scratch in modern C/KMDF. Added DualShock 4 emulation, WHQL attestation, dynamic plug/unplug, multi-pad support. The de facto standard for millions of PC players. Stable, secure, archived at v1.22.0 in late 2023 due to driver signing policy changes.
Nefarius VirtualPad (2024+)
Next Generation
Modernized rewrite adopting Microsoft’s latest Virtual Device Bus specifications, modular architecture, and modern signing pipeline. In active development by Nefarius as the future successor once Windows 11 completely phases out legacy driver signing paths.

If your system still harbors remnants of old Scarlet.Crush drivers from years ago, they will directly collide with ViGEmBus. Refer to our ScpToolkit replacement guide to purge legacy filter drivers with Legacinator before configuring modern tools.

Supported Emulated Target Controllers and Hardware IDs

ViGEmBus is capable of emulating two specific controller targets at the kernel level:

1. Microsoft Xbox 360 Controller (XUSB Target)

  • Hardware ID: USB\VID_045E&PID_028E
  • Compatible Windows Subsystems: XInput (1.1, 1.3, 1.4), Windows.Gaming.Input (WGI), DirectInput fallback.
  • Target Usage: This is the default target generated by XOutput and x360ce. It provides 100% universal compatibility across virtually every PC title released since 2005. It features two analog sticks, two analog triggers (0–255), a digital D-Pad, 10 digital buttons, and dual-motor rumble.

2. Sony DualShock 4 Controller (DS4 Target)

  • Hardware ID: USB\VID_054C&PID_05C4 (v1) or USB\VID_054C&PID_09CC (v2)
  • Compatible Windows Subsystems: Raw DirectInput HID, Sony Remote Play, PlayStation PC ports.
  • Target Usage: Primarily utilized by DS4Windows. This mode allows software to expose gyroscopic 6-axis motion data, capacitive touchpad coordinates, lightbar RGB color states, and audio jack endpoints to games that natively recognize PlayStation hardware.

The Broader ViGEmBus Ecosystem Beyond XOutput

While XOutput relies on ViGEmBus to convert generic DirectInput gamepads into Xbox controllers, the driver serves as the invisible backbone for dozens of flagship gaming utilities across the PC industry:

DS4Windows (Ryochan7)

Translates PlayStation DualShock 4 and DualSense 5 controllers into virtual Xbox 360 pads for games lacking native Sony controller support, while routing gyro input to mouse aiming via ViGEmBus.

Moonlight & Sunshine Game Streaming

When you stream games from your gaming desktop to a phone, laptop, or Steam Deck over your local network, Sunshine captures client gamepad packets and feeds them to ViGEmBus on the host PC.

Parsec Remote Co-op

Parsec utilizes ViGEmBus to inject remote player inputs directly into the host machine, enabling seamless local multiplayer gaming across the internet without latency degradation.

x360ce 4.x (Virtual Device Mode)

The modern iteration of the classic emulator utilizes ViGEmBus to bypass the DLL injection restrictions imposed by modern Windows architectures and anti-cheat software.

Version 1.22.0 Archival Status and Microsoft Driver Signing Realities

A frequent point of confusion among PC gamers is why ViGEmBus ceased releasing updates after version 1.22.0. Understanding the open-source driver landscape clarifies why this is normal and safe:

The Microsoft Driver Signing Dilemma

In recent Windows revisions, Microsoft systematically altered the requirements for running code in Ring 0. Previously, open-source developers could sign kernel drivers using commercial Cross-Certificates. Microsoft officially deprecated cross-certificates, mandating that all kernel drivers must undergo Windows Hardware Quality Labs (WHQL) testing and attestation signing via an active Microsoft Azure Hardware Developer Portal account.

Maintaining an active corporate hardware signing account demands costly annual Extended Validation (EV) code-signing certificates (\$400–\$700/year) and formal legal entity registration — an immense financial and administrative burden for an independent open-source developer maintaining free software.

Feature-Complete Stability

Benjamin Höglinger announced the formal archival of the ViGEm project after securing official WHQL attestation signatures for v1.22.0. The driver does not require continuous rolling updates because its functional requirements are static: Microsoft’s Xbox 360 controller protocol has not altered in twenty years. ViGEmBus v1.22.0 is functionally complete, rock-solid, and carries valid signatures that Windows 10 and Windows 11 trust implicitly.

Scam Warning: Any third-party website, YouTube channel, or forum offering “ViGEmBus v1.23”, “v1.25”, or “ViGEmBus Pro” is distributing counterfeit software, potentially bundled with adware or malware. Only install version 1.22.0 from verified GitHub archives or our verified download hub.

Security Architecture, WHQL Attestation, and Windows 11 Memory Integrity

Because ViGEmBus executes within the Windows kernel, users naturally question its security implications and system stability (complete XOutput security overview).

1. Hypervisor-Protected Code Integrity (HVCI) Compatibility

Windows 11 enables Core Isolation / Memory Integrity by default. HVCI utilizes hardware virtualization to isolate the kernel memory space, ensuring that unsigned or vulnerable drivers cannot execute malicious payloads. ViGEmBus v1.22.0 was compiled against modern Windows Driver Kit (WDK) guidelines and passes all Microsoft HVCI validation checks without triggering security alerts.

2. Anti-Cheat Friendliness

Because ViGEmBus creates standard hardware nodes authenticated by Microsoft’s own xusb22.sys, kernel-mode anti-cheat systems (such as BattlEye, Easy Anti-Cheat, and Call of Duty RICOCHET) inspect the driver without hostility (anti-cheat guide). ViGEmBus does not touch game memory, scan private processes, or alter operating system binaries.

3. Open-Source Transparency

The entire source code of ViGEmBus.sys and its client libraries is completely public on GitHub. Independent security researchers and developers worldwide have audited its memory buffers and IOCTL dispatch tables for buffer overflows and privilege escalation flaws.

Driver Installation, Health Diagnostics, and Clean Removal

For a detailed installation walkthrough, consult our step-by-step ViGEmBus Windows installation guide. Here is the technical summary for maintaining driver health:

Verifying ViGEmBus in Windows Device Manager

  1. Press Win + X and select Device Manager.
  2. Expand the System devices category near the bottom.
  3. Locate Virtual Gamepad Emulation Bus.
  4. Right-click the entry and select Properties. The device status box must display: “This device is working properly.”
The Critical Post-Install Reboot: When ViGEmBus is installed, the PnP manager registers the bus class in the Windows registry, but the kernel driver may not bind to the active device tree until system restart. If XOutput displays “ViGEmBus is not installed”, performing a clean Windows reboot resolves 95% of initial configuration issues (comprehensive troubleshooting repository).

Clean Uninstallation Procedure

If you ever need to completely remove ViGEmBus from your system:

  1. Open Windows Settings → Apps → Installed apps.
  2. Search for ViGEm Bus Driver.
  3. Click the three dots and select Uninstall.
  4. Restart your PC to allow Windows PnP to cleanly unregister the virtual root bus node.

Frequently Asked Questions

Does installing ViGEmBus introduce input lag to my PC games?

No. ViGEmBus operates within kernel space using direct asynchronous I/O completion routines. The internal packet processing delta between receiving a user-mode report and notifying the operating system measures beneath 0.05 milliseconds (50 microseconds). Any noticeable input latency in your gaming setup stems from the physical controller’s USB polling rate, display panel latency, or Bluetooth packet loss, rather than ViGEmBus itself.

Do I need to install ViGEmBus if I already own an authentic Xbox controller?

No. If you connect an authentic Microsoft Xbox 360, Xbox One, or Xbox Series X|S controller, Windows communicates with it directly via native XInput drivers. ViGEmBus is only necessary when you need to synthesize a virtual controller — such as translating DirectInput pads, arcade sticks, or streaming remote inputs.

Why does XOutput display “ViGEmBus driver not found” after I ran the installer?

This error occurs under three specific conditions: (1) The system was not restarted after installation, preventing the PnP manager from enumerating the bus; (2) An obsolete driver from a legacy ScpToolkit installation is blocking the driver binding; or (3) An overly aggressive third-party security suite blocked the kernel driver registration. Restart your computer first; if the issue persists, run the installer as Administrator.

Can ViGEmBus damage my physical hardware or controller ports?

No. ViGEmBus is purely software-defined virtualization. It does not manipulate motherboard voltages, alter USB transceiver clocks, or flash controller firmware. It merely creates software endpoints in the Windows device tree.

Is ViGEmBus still maintained, and what replaces it in the future?

ViGEmBus reached its feature-complete milestone and was archived at v1.22.0 in late 2023. It continues to work without restriction on Windows 10 and 11. Its creator, Nefarius, is developing Nefarius VirtualPad as the modern next-generation successor to navigate evolving Windows kernel driver signing frameworks.

Similar Posts