Summary
SignaledReader.ReadLoop in the bundled RazerSdkReader.dll has a bug where the 5-second polling fallback never fires, causing legacy Chroma SDK games to stop updating after their initial read.
Root cause
EventWaitHandleExtensions.WaitOneAsync passes -1 to RegisterWaitForSingleObject after the synchronous wait expires instead of the caller's timeout. The code comment describes 5-second polling as intended behaviour, but the implementation blocks forever.
Impact
Legacy Chroma SDK games write color data directly to shared memory without signaling the event handle. Their colors are read once at startup, then never updated again.
Verification
Patched the bundled RazerSdkReader.dll (single constant: -1 to 5000) and confirmed that 007: First Light updates continuously without manual intervention.
Resolution
Summary
SignaledReader.ReadLoopin the bundledRazerSdkReader.dllhas a bug where the 5-second polling fallback never fires, causing legacy Chroma SDK games to stop updating after their initial read.Root cause
EventWaitHandleExtensions.WaitOneAsyncpasses-1toRegisterWaitForSingleObjectafter the synchronous wait expires instead of the caller's timeout. The code comment describes 5-second polling as intended behaviour, but the implementation blocks forever.Impact
Legacy Chroma SDK games write color data directly to shared memory without signaling the event handle. Their colors are read once at startup, then never updated again.
Verification
Patched the bundled
RazerSdkReader.dll(single constant:-1to5000) and confirmed that 007: First Light updates continuously without manual intervention.Resolution