Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Windows: driver host process crashes ~1s after DualSense virtual gamepad creation; all libvirtualhid devices become invalid until reboot

Aberta
#199 9 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

@ReenigneArcher já está trabalhando nisso.

Desde 21/10/2026.

  • #200 de @ReenigneArcher — aberto

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
43/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
cpp

Direção de pesquisa

Start by examining the attached sunshine.log.5 and sunshine.log.4, especially the Windows virtual HID input report failures and the later unavailable or unlicensed driver message. Trace the DualSense device creation, state submission, and removal paths in the Windows implementation; the issue does not name source files or tests. Done means reproducing or isolating the driver host termination and confirming devices recover without a reboot.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Describe the Bug
Environment
  • OS: Windows 10 Pro 22H2 (build 19045.6466)
  • Sunshine: 2026.914.233613 (commit 63d35f702ee9e362e43263742981836ec0710384)
  • libvirtualhid Windows driver: 2026.914.1218.10 (active license)
  • GPU: NVIDIA GeForce RTX 5060
  • gamepad_driver: all (first occurrence), then virtualhid
  • Virtual gamepad: DualSense, auto-selected by client-reported type
  • Client: Moonlight for Windows 6.2.0
  • Physical controller: Sony DualSense (CFI-ZCT1W)
Description

About 1 second after Sunshine creates the virtual DualSense gamepad, the device driver host process terminates. From that moment every libvirtualhid device (gamepad, mouse, keyboard) fails with "invalid handle", the virtual controller disconnects from the session and Sunshine becomes unstable / crashes. It also happens when the controller is disconnected on the client side.

Log excerpt (Italian Windows, translated):
[16:44:21.951] Info: Gamepad 0 will be Sunshine (libvirtualhid) PS5 Controller
[16:44:22.861] Warning: submit libvirtualhid gamepad state: submit Windows input report: The process hosting the driver for this device has been terminated.
[16:44:22.861] Warning: submit libvirtualhid gamepad gyroscope: submit Windows input report: Invalid handle.
[16:44:22.861] Warning: submit libvirtualhid gamepad acceleration: submit Windows input report: Invalid handle.
(~48,000 similar warnings in 6 minutes, mostly gyroscope/acceleration, then mouse/keyboard/scroll)
[16:48:54.166] Warning: create libvirtualhid gamepad: create Windows virtual HID device: Invalid handle.
[16:48:54.167] Info: Gamepad 0 will be DualShock 4 controller (fallback to ViGEmBus)

After restarting Sunshine with gamepad_driver = virtualhid, the driver is reported as "Virtual HID Driver is selected but is unavailable or unlicensed" and all gamepad types are disabled, even though the license is active. Only a reboot restores the driver. The following Sunshine start reports "nvprefs: Opened undo file from previous improper termination".

Steps to reproduce
  1. Windows host with libvirtualhid 2026.914.1218.10, gamepad_driver = all or virtualhid
  2. Connect from Moonlight (Windows 6.2.0) with a DualSense, so the DualSense type is auto-selected
  3. Use the controller, or disconnect it during the session
  4. The driver host process terminates shortly after
Attachments

sunshine.log.5 (crash at 16:44), sunshine.log.4 (driver unavailable after restart)

Expected Behavior

The virtual gamepad is created and removed without crashing the driver host. If the host does crash, the driver recovers without a reboot and is not reported as unlicensed.

sunshine4.log
sunshine5.log

Additional Context

No response

Linguagem predominante
C++
Estrelas
93
Forks
25
Merge médio
13h 57min
PRs com merge (30d)
33

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de LizardByte/libvirtualhid

Todas as issues de LizardByte/libvirtualhid

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.