nefarius/ViGEmBus
GitHub: nefarius/ViGEmBus
Stars: 4078 | Forks: 389
# ViGEm 总线驱动程序
Windows 内核模式驱动程序,用于模拟知名 USB 游戏控制器。
[](https://ci.appveyor.com/project/nefarius/vigembus) [](https://somsubhra.github.io/github-release-stats/?username=nefarius&repository=ViGEmBus) [](https://discord.nefarius.at) [](https://docs.nefarius.at/) [](https://github.com/nefarius) [](https://fosstodon.org/@Nefarius)
## 🧟 本项目已停用 🧟
建议使用本软件的读者 [阅读停用声明](https://docs.nefarius.at/projects/ViGEm/End-of-Life/)。永别了,干杯 🖖
## 关于
`ViGEmBus` 驱动和 `ViGEmClient` 库是虚拟游戏手柄模拟框架(简称为 `ViGEm`)的核心。`ViGEm` 旨在以纯软件方式实现 100% 准确地模拟知名游戏外设作为基于内核的设备。它模拟“真实设备”,因此游戏和其他进程无需任何额外修改即可检测 `ViGEm` 设备(无需 Proxy-DLLs 或 API 挂钩),开箱即用。虽然(现已废弃的)[Scarlett.Crush Productions 虚拟总线驱动]() 是此项目的精神之父,但 `ViGEm` 是从零开始设计并使用 Microsoft 的 [内核模式驱动程序框架](https://en.wikipedia.org/wiki/Kernel-Mode_Driver_Framework) 编写的。
### 模拟设备
支持以下 USB 游戏手柄的模拟:
- [微软 Xbox 360 控制器](https://en.wikipedia.org/wiki/Xbox_360_controller)
- [索尼 DualShock 4 控制器](https://en.wikipedia.org/wiki/DualShock#DualShock_4)
## 使用场景
`ViGEm` 的一些常见使用场景包括:
- 您有一个不支持的设备,希望在游戏内使用而无需修改游戏本身。
- 您希望在使用 [PS4 远程播放]( ) 时自由使用选择的控制器。
- 您遇到与 [x360ce]( )(4.x 版本之前)不兼容的游戏。
- 您希望扩展输入设备的覆盖范围(例如通过网络将流量发送到另一台机器)。
- 您希望测试/对游戏进行基准测试,并需要用户输入的回放机制。
- 您希望在 `XInput` 中解决玩家槽位分配顺序问题。
## 支持的系统
🛑 **Windows Server** 可能可以工作,但 **不受支持** 🛑
关于在服务器操作系统上运行的错误报告/支持请求将被忽略。
### 版本 1.16 及以下
该驱动程序适用于 Windows 7/8.1/10(x86 和 amd64)。
### 版本 1.17 及以上
该驱动程序仅适用于 Windows 10/11(x86、amd64 和 ARM64)。
## 许可证
ViGEm 总线驱动程序根据 **BSD-3-Clause** 许可,请参阅 [LICENSE](./LICENSE.md) 获取更多信息。
## 如何构建
### 先决条件
- [步骤 1:安装 Visual Studio 2019](https://docs.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads#step-1-install-visual-studio)
- [步骤 2:安装适用于 Windows 10 版本 2004 的 WDK](https://docs.microsoft.com/en-us/windows-hardware/drivers/other-wdk-downloads#step-2-install-the-wdk)
- [步骤 3:将驱动模块框架 (DMF) 克隆到同一父目录中。](https://github.com/microsoft/DMF)
- 使用所有架构(x64 和 Win32)的 Release 和 Debug 配置构建 `DmfK` 项目。
您可以直接在 Visual Studio 中构建。
请注意,您需要 **签名** 驱动程序才能在无 [测试模式](https://docs.microsoft.com/en-us/windows-hardware/drivers/install/the-testsigning-boot-configuration-option#enable-or-disable-use-of-test-signed-code) 的情况下使用。
### 错误与功能
发现错误并希望修复?请在 [GitHub 问题跟踪器](../../issues) 上打开详细问题!
有关于新功能的建议?让我们在 [Discord](https://discord.nefarius.at) 上讨论您的请求!
### 问题与支持
请尊重 GitHub 问题跟踪器并非帮助台。我们提供 [一系列支持资源](https://docs.nefarius.at/Community-Support/),欢迎您查阅!
## 安装
为 Windows 10/11 提供预构建的生产签名二进制文件 **由 `Nefarius Software Solutions e.U.` 通过 [一站式安装程序](../../releases/latest) 提供**。
## ViGEm 的已知用户
列出已知使用 ViGEm 功能的项目/公司/供应商。
此列表不完整,如果您希望将项目加入列表,请联系我们!
- [3dRudder](https://www.3drudder.com/)
- [Parsec](https://parsec.app/)
- [GloSC](https://github.com/Alia5/GloSC)
- [UCR](https://github.com/Snoothy/UCR)
- [InputMapper](https://inputmapper.com/)
- [Oculus VR, LLC.](https://www.oculus.com/)
- [WiimoteHook](https://forum.cemu.info/showthread.php/140-WiimoteHook-Nintendo-Wii-Remote-with-Motion-Rumble-and-Nunchuk-support)
- [XJoy](https://github.com/sam0x17/XJoy)
- [HP](https://www8.hp.com/us/en/gaming/omen.html)
- [DS4Windows](https://ryochan7.github.io/ds4windows-site/)
- [XOutput](https://github.com/csutorasa/XOutput)
- [RdpGamepad](https://github.com/microsoft/RdpGamepad)
- [Touchmote](https://github.com/Ryochan7/Touchmote/tree/ryochan7)
- [Mi-ViGEm](https://github.com/grayver/mi-vigem)
- [BetterJoy](https://github.com/Davidobot/BetterJoy)
- [Regame](https://github.com/ksyun-kenc/liuguang)
- [NetInput](https://github.com/usertoroot/NetInput)
- [NetJoy](https://github.com/Qcent/NetJoy/)
标签:Bro, bus driver, gamepad emulation, kernel-mode, KMDF, Nefarius, retired, USB模拟, ViGEm, virtual hardware, Windows驱动, 内核模式, 内核驱动, 游戏手柄, 游戏控制器, 网络协议, 网络安全监控, 虚拟外设, 虚拟总线, 虚拟游戏棒, 设备仿真, 驱动开发