When launching games (e.g., Dying Light The Beast) or Steam on the host and then on the instance, I immediately get a
"Game is already running" Mutex error, and Steam logs out the host session. The isolation is simply not functioning.
Technical Findings (Root Cause):
I inspected the system state to see why the isolation failed, and it appears the installer/DuoService is completely
failing to deploy the verifier.dll payloads to the OS, despite the settings being enabled in the registry.
-
Registry State: Looking at HKLM\SOFTWARE\Duo, isolation is clearly toggled ON:
- EnableVerifier = 1
- SteamIsolation = 1
- EnableProcessPatching = 1
- VerifierUsesBlacklist = 1
-
The Failure (Payload deployment): Despite the registry indicating that global hooking (Blacklist mode) is active,
Duo failed to overwrite or place its custom verifier.dll in the system directories. Both
C:\Windows\System32\verifier.dll and the SysWOW64 equivalent remain the original, signed 400KB Microsoft files.
There are also no IFEO global keys set to trigger the hook.
Conclusion:
The UI/Registry says isolation is enabled, but the actual deployment of the API hooks (the custom DLLs) to
System32/SysWOW64 is failing silently during installation or service startup. Because the DLLs are missing, no hooking
occurs, global Mutexes bleed across RDP boundaries, and the multi-seat experience breaks.
Is there a permission bug in the new installer script preventing it from copying the payloads to System32?
When launching games (e.g., Dying Light The Beast) or Steam on the host and then on the instance, I immediately get a
"Game is already running" Mutex error, and Steam logs out the host session. The isolation is simply not functioning.
Technical Findings (Root Cause):
I inspected the system state to see why the isolation failed, and it appears the installer/DuoService is completely
failing to deploy the verifier.dll payloads to the OS, despite the settings being enabled in the registry.
Registry State: Looking at HKLM\SOFTWARE\Duo, isolation is clearly toggled ON:
The Failure (Payload deployment): Despite the registry indicating that global hooking (Blacklist mode) is active,
Duo failed to overwrite or place its custom verifier.dll in the system directories. Both
C:\Windows\System32\verifier.dll and the SysWOW64 equivalent remain the original, signed 400KB Microsoft files.
There are also no IFEO global keys set to trigger the hook.
Conclusion:
The UI/Registry says isolation is enabled, but the actual deployment of the API hooks (the custom DLLs) to
System32/SysWOW64 is failing silently during installation or service startup. Because the DLLs are missing, no hooking
occurs, global Mutexes bleed across RDP boundaries, and the multi-seat experience breaks.
Is there a permission bug in the new installer script preventing it from copying the payloads to System32?