wintrust: implement WintrustGetRegPolicyFlags and WintrustSetRegPolicyFlags

Saulius Krasuckas saulius2 at ar.fi.lt
Sun Jun 3 13:05:09 CDT 2007


* On Mon, 14 May 2007, Juan Lang wrote:
> 
> +static const WCHAR Software_Publishing[] = {
> + 'S','o','f','t','w','a','r','e','\\',
> + 'M','i','c','r','o','s','o','f','t','\\',
> + 'W','i','n','d','o','w','s','\\',
> + 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\',
> + 'W','i','n','t','r','u','s','t','\\',
> + 'T','r','u','s','t',' ','P','r','o','v','i','d','e','r','s','\\',
> + 'S','o','f','t','w','a','r','e',' ',
> + 'P','u','b','l','i','s','h','i','n','g',0 };
> +static const WCHAR State[] = { 'S','t','a','t','e',0 };
> +
>  /***********************************************************************
>   *		WintrustGetRegPolicyFlags (WINTRUST.@)
>   */
>  void WINAPI WintrustGetRegPolicyFlags( DWORD* pdwPolicyFlags )
>  {
> -    FIXME("%p\n", pdwPolicyFlags);
> +    HKEY key;
> +    LONG r;
> +
> +    TRACE("%p\n", pdwPolicyFlags);
> +
>      *pdwPolicyFlags = 0;
> +    r = RegCreateKeyExW(HKEY_CURRENT_USER, Software_Publishing, 0, NULL, 0,
> +     KEY_READ, NULL, &key, NULL);
> +    if (!r)
> +    {
> +        DWORD size = sizeof(DWORD);
> +
> +        r = RegQueryValueExW(key, State, NULL, NULL, (LPBYTE)pdwPolicyFlags,
> +         &size);
> +        RegCloseKey(key);

This function tries to open Software_Publishing key.  And creates it, if 
the key didn't exist, I suppose.  It is absent in a clean $WINEPREFIX.  
Hence 4 test failures:

$ wine dlls/wintrust/tests/wintrust_test.exe.so register
register.c:327: Test failed: RegOpenKeyEx failed: 2
register.c:331: Test failed: RegQueryValueEx failed: 6
register.c:334: Test failed: Didn't get expected flags
register.c:341: Test failed: Didn't get expected flags
register: 43 tests executed (0 marked as todo, 4 failures), 0 skipped.

During next run failures are gone, and I get this difference between two 
registry dumps:

+[HKEY_USERS\S-1-5-4\Software\Microsoft\Windows\CurrentVersion\Wintrust]
+
+[HKEY_USERS\S-1-5-4\Software\Microsoft\Windows\CurrentVersion\Wintrust\Trust Providers]
+
+[HKEY_USERS\S-1-5-4\Software\Microsoft\Windows\CurrentVersion\Wintrust\Trust Providers\Software Publishing]
+"State"=dword:00023c00

So this key should be registered during wineprefix run at some point, 
right?



More information about the wine-devel mailing list