unknown device issues after running winetest

Paul Vriens paul.vriens.wine at gmail.com
Wed May 21 10:23:21 CDT 2008


Juan Lang wrote:
>> Now you tell me :-).
>>
>> I've something in place already to get rid of the stray registry keys. Just
>> needs some more thought and tweaking.
> 
> Well that's even better!  Feel free to send here for comments :)
> --Juan
> 
It's a new function that just changes the permissions:

static void change_reg_permissions(CHAR *regkey)
{
     HKEY hkey;
     SID_IDENTIFIER_AUTHORITY ident = { SECURITY_WORLD_SID_AUTHORITY };
     SECURITY_DESCRIPTOR sd;
     PSID EveryoneSid;
     PACL pacl = NULL;

     RegOpenKeyExA(HKEY_LOCAL_MACHINE, regkey, 0, WRITE_DAC, &hkey);

     /* Initialize the 'Everyone' sid */
     AllocateAndInitializeSid(&ident, 1, SECURITY_WORLD_RID, 0, 0, 0, 0, 0, 0, 
0, &EveryoneSid);

     pacl = HeapAlloc(GetProcessHeap(), 0, 256);
     InitializeAcl(pacl, 256, ACL_REVISION);

     /* Add 'Full Control' for 'Everyone' */
     AddAccessAllowedAce(pacl, ACL_REVISION, KEY_ALL_ACCESS, EveryoneSid);

     InitializeSecurityDescriptor(&sd, SECURITY_DESCRIPTOR_REVISION);

     SetSecurityDescriptorDacl(&sd, TRUE, pacl, FALSE);

     /* Set the new security on the registry key */
     RegSetKeySecurity(hkey, DACL_SECURITY_INFORMATION, &sd);

     RegCloseKey(hkey);

     HeapFree(GetProcessHeap(), 0, pacl);
     if (EveryoneSid)
         FreeSid(EveryoneSid);
}

Now we are able to remove the registry keys. Works fine on NT4, didn't test on 
Vista yet.

I didn't find a way yet (and didn't look to hard) to make the subkeys inherit 
these new permissions. Otherwise I have to do this for every key.

-- 
Cheers,

Paul.



More information about the wine-devel mailing list