I have just recreated the issue with both TurboFloat and TurboActivate using a clean build of Windows 10 Pro.
Reproduction Steps are below:
Initial Steps
This is all done logged in as a user who does not have Admin permissions, and any Admin functions are explicitly labelled.
Set Permissions on ProgramData
In Windows Explorer
- On the Ribbon, click the View Tab.
- Tick Hidden items in the Show/hide Group (so that ProgramData is visible).
- Right Click on C:\ProgramData and click Properties.
- Click on the Security Tab.
- Click on the Advanced Button.
- Click Change Permissions (Admin Permission Required - Entered Admin User / Password).
- Click on USERS (MACHINENAME\Users) - Write.
- Click on Edit.
- Click on Show Advanced Permissions.
- Untick Create folders / append data.
- Click on OK to shut the Adanced Security Settings Dialog.
- Click Continue on any errors applying permissions to sub folders.
- Click on OK to shut the Properties Dialog.
TurboFloat Steps
These tests are performed using a 64bit C# test app I created which uses our TurboActivate.dat and the 64bit version of TurboFloat.dll (4.4.4.0)
Create instance of TurboFloat
- This is Successful.
Call SaveServer(ADDRESS, PORT, TF_Flags.TF_USER)
- This is Successful.
- This writes information to %LocalAppData%\TurboFloat
Call RequestLease()
- This Fails.
- Error: The floating license server you're trying to contact can't give license leases for this product version.
- If the above permissions are not set on ProgramData then this is successful and it writes information to %ProgramData%\win-net
TurboActivate Steps
These tests are performed using a 64bit C# test app I created which uses our TurboActivate.dat and the 64bit version of TurboActivate.dll (4.4.4.0)
Create instance of TurboActivate
- This is Successful.
Call CheckAndSavePKey(KEY, TA_Flags.TA_USER)
- This is Successful.
- This writes information to %LocalAppData%\ms-drivers and %LocalAppData%\icsxml.
Call Activate()
- This Fails.
- Error: Insufficient system permission. Either start your process as an admin / elevated user or call the function again with the TA_USER flag.
- If the above permissions are not set on ProgramData then this is successful and it writes information to %ProgramData%\win-net