Muis- en toetsenbord-tweaks

Grotere invoerwachtrijen, een kortere bevriezing bij een vastgelopen invoerhook, een kortere toetsherhalingsvertraging. Geen ervan laat een klik eerder aankomen.

Wat dit gedeelte wijzigt

Grotere invoerwachtrijen, een kortere bevriezing bij een vastgelopen invoerhook, een kortere toetsherhalingsvertraging. Geen ervan laat een klik eerder aankomen.

InstellingWat ze doetRegisterpad
Grootte van de muis-datawachtrijVerhoogt de rapportbuffer van het class-stuurprogramma van de muis van 100 naar 150. De latency wordt er niet korter door; een muis met een hoge pollingrate raakt geen rapporten kwijt wanneer de lezende thread blijft hangen. Ook naar mouhid geschreven, waar niets is gevonden dat hem leest.HKLM\...\Services\mouclass + mouhid\Parameters\MouseDataQueueSize
Grootte van de toetsenbord-datawachtrijVerhoogt de toetsrapportbuffer van het class-stuurprogramma van het toetsenbord van 100 naar 150. De latency wordt er niet korter door; het laat ruimte tegen verloren invoer. Ook naar kbdhid geschreven, waar niets is gevonden dat hem leest.HKLM\...\Services\kbdclass + kbdhid\Parameters\KeyboardDataQueueSize
Begrenzen hoe lang een vastgelopen invoerhook de muis blokkeertWindows slaat een invoerhook die niet meer reageert over zodra deze time-out verloopt; dit zet hem op één seconde, het maximum dat Windows 10 1709 en later toestaan. Zonder ingestelde waarde is de standaard niet gedocumenteerd en niet gemeten. Een hook die alleen onder belasting traag is, kan ook wegvallen; de bijbehorende tool herstarten haalt hem terug.HKCU\Control Panel\Desktop\LowLevelHooksTimeout
De toetsherhalingsvertraging op de kortste stap zettenVerkort de halve seconde wachten voordat een ingedrukte toets herhaalt naar 250 ms (de kortste stap) en zet de snelste herhalingssnelheid. Losse aanslagen in een game gaan hier nooit doorheen; je merkt het in de console, chat en menu's. Te gretig tijdens het typen? Draai het terug op de pagina Fix.HKCU\Control Panel\Keyboard\KeyboardDelay + KeyboardSpeed

Hoe je het toepast

  1. Open w0a
  2. Ga in het linkermenu naar de pagina Regedit-tweaks
  3. Zoek dit gedeelte op en druk op Toepassen bij de items die je wilt

Elk item heeft zijn eigen knop, dus je hoeft geen heel gedeelte toe te passen — Alles toepassen boven aan de pagina staat er voor als je ze wél allemaal wilt.

Hoe je het terugneemt

Twee manieren, en ze werken allebei:

geschreven. Het draait alles terug wat na dat punt is toegepast, latere controlepunten inbegrepen — de bevestiging zegt precies dat voordat ze begint.

leest geen back-up en werkt dus ook wanneer het back-upbestand van w0a weg is.

Het logboek voor ongedaan maken staat in %ProgramData%\w0a\backup.json, buiten je gebruikersprofiel.

Het risico

Alles hier is een gedocumenteerde waarde die Windows ondersteunt; niets ervan zit op kernelniveau en niets ervan is onomkeerbaar. De eerlijke zin blijft toch deze: een instelling kan voor jou zonder meetbaar nut zijn. Pas je een wijziging toe en voel je geen verschil, dan heb je waarschijnlijk gelijk — deze pagina's verkopen je geen gevoel, ze vertellen je wat er is gewijzigd.

Wil je het meten, dan geldt de regel uit de benchmark lezen: wijzig één ding tegelijk en lees de lows in plaats van het gemiddelde.

Eerst de eerlijke zin

Geen van de vier vakjes laat een klik of toetsaanslag eerder bij de game aankomen. Twee maken een buffer dieper, zodat invoer minder snel verloren gaat wanneer de thread die hem leest blijft hangen; één verkort hoe lang een vastgelopen invoerhook muis en toetsenbord kan laten bevriezen; één verandert wat een ingedrukt gehouden toets doet. Of een ervan een wedstrijd verandert, is niet gemeten: verloren muisrapporten zijn nooit geteld met en zonder de grotere wachtrij, en de time-out van de hook doet pas ter zake zodra een hook niet meer antwoordt.

Vakje voor vakje

Grootte van de muis-datawachtrij — schrijft MouseDataQueueSize=150 (REG_DWORD) onder HKLM\SYSTEM\CurrentControlSet\Services\mouclass\Parameters, en hetzelfde onder HKLM\SYSTEM\CurrentControlSet\Services\mouhid\Parameters. De standaard is 100 bij het class-stuurprogramma, en een schone Windows heeft onder mouhid geen waarde. Het is een wachtrijdiepte, geen latency-instelling: een kleinere wachtrij kan een rapport niet eerder doorgeven, hij laat alleen eerder rapporten vallen wanneer iets hem even niet meer leegt, en op een muis van 8000 Hz is een weggevallen rapport verloren invoer. 150 is speelruimte die het geheugen van de wachtrij niet als gratis behandelt. Alleen van mouclass is bekend dat het de waarde leest; een scan van mouhid.sys (10.0.26100.1) vindt die naam niet, en die schrijfactie blijft totdat ze gemeten is. Wordt gelezen wanneer het stuurprogramma laadt: van kracht na een herstart.

Grootte van de toetsenbord-datawachtrij — hetzelfde voor het toetsenbord: KeyboardDataQueueSize=150 (REG_DWORD) onder HKLM\SYSTEM\CurrentControlSet\Services\kbdclass\Parameters en HKLM\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters. De standaard is 100 bij kbdclass en niets onder kbdhid; ook kbdhid.sys bevat die naam niet. Van kracht na een herstart.

Begrenzen hoe lang een vastgelopen invoerhook de muis blokkeert — schrijft LowLevelHooksTimeout=1000 (REG_DWORD, milliseconden) onder HKCU\Control Panel\Desktop. Overlays, macrotools en chatprogramma's installeren low-level hooks waar elke invoergebeurtenis een voor een doorheen gaat. Microsoft documenteert dat een hook die niet binnen deze tijd terugkeert, wordt overgeslagen — vanaf Windows 7 stilletjes verwijderd — en dat vanaf Windows 10 1709 1.000 ms het maximum is dat Windows toestaat. Eén seconde is lang genoeg voor een hook die alleen bezig is, en kort genoeg om een vastgelopen hook niet als bevriezing te voelen. De afweging: een hook die onder belasting alleen traag is, kan ook wegvallen; die tool herstarten haalt hem terug. De Windows-standaard is geen waarde. Hoe lang Windows dan wacht, zegt Microsoft niet en hebben wij niet gemeten. Van kracht nadat je je hebt afgemeld en weer aangemeld.

De toetsherhalingsvertraging op de kortste stap zetten — schrijft KeyboardDelay="0" en KeyboardSpeed="31", allebei REG_SZ, onder HKCU\Control Panel\Keyboard. Windows wordt geleverd met "1" en "31". Microsoft plaatst 0 op ongeveer 250 ms en 31 op ongeveer 30 herhalingen per seconde, waarbij de echte waarden van de hardware afhangen. Strings, omdat Windows een DWORD negeert die eroverheen is geschreven. KeyboardSpeed wordt ook bij de standaardwaarde 31 geschreven: een toegankelijkheidsprofiel kan hem lager achterlaten. Van kracht nadat je je hebt afgemeld en weer aangemeld.

Zelf controleren

reg query "HKLM\SYSTEM\CurrentControlSet\Services\mouclass\Parameters" /v MouseDataQueueSize
reg query "HKLM\SYSTEM\CurrentControlSet\Services\mouhid\Parameters" /v MouseDataQueueSize
reg query "HKLM\SYSTEM\CurrentControlSet\Services\kbdclass\Parameters" /v KeyboardDataQueueSize
reg query "HKLM\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters" /v KeyboardDataQueueSize
reg query "HKCU\Control Panel\Desktop" /v LowLevelHooksTimeout
reg query "HKCU\Control Panel\Keyboard" /v KeyboardDelay
reg query "HKCU\Control Panel\Keyboard" /v KeyboardSpeed

reg query toont een DWORD hexadecimaal: 150 is 0x96, 100 is 0x64, 1000 is 0x3e8. Geen waarde onder mouhid of kbdhid, of geen LowLevelHooksTimeout, is wat een schone Windows heeft.

Wat dit onderdeel niet doet

Het raakt de aanwijzersnelheid niet aan. Een vakje zette MouseSensitivity ooit geforceerd op de ongeschaalde stand 6/11, over snelheden heen die mensen zelf hadden gekozen. Games die raw input lezen, zien die waarde nooit, dus het veranderde niets in een game en alles daarbuiten; het is verwijderd.

Het maakt een wachtrij nooit kleiner. Een eerdere build schreef 20, onder de standaard van 100, onder een label dat een diepere wachtrij beloofde; een kleinere wachtrij kan een rapport niet eerder afleveren, alleen eerder kwijtraken.

Buiten deze pagina

Op de Fix-pagina zet Invoerwachtrijen beide wachtrijwaarden terug; Toetsherhalingssnelheid en -vertraging herstelt het herhalingspaar zonder de muis aan te raken; Vensterfocus en hulpprogramma's verwijdert de time-out van de hook; Muis, toetsenbord en touchpad herstelt de wachtrijen en het herhalingspaar en zet ook de aanwijzerversnelling en het touchpad terug. Muisversnelling is een apart vakje op de pagina Optimalisaties, Muisversnelling uitschakelen (consistent richten). Als een klik te laat aanvoelt, lopen Waarom mijn aim vertraagd aanvoelt en Waarom toetsaanslagen in games te laat aanvoelen de hele keten door.

Welke Windows-instellingen in een game iets veranderen, wie elke instelling helpt en voor wie hij niets doet: Windows 11-gaminginstellingen die er echt toe doen

w0a verandert geen enkele Windows-instelling tot je erom vraagt, en een tweak bewaart de oude waarde voordat hij een nieuwe schrijft. Herinner me

Heeft deze pagina geholpen?

Wat ontbrak, of wat werkte er niet? We lezen elk van deze berichten.

Heeft deze pagina het niet opgelost, schrijf ons dan — noem het artikel dat je hebt gelezen, dan verbeteren we het.