crypt32: implement CryptSIPLoad (try 3)

Paul Vriens paul.vriens.wine at gmail.com
Fri May 11 02:45:22 CDT 2007


Juan Lang wrote:
> -    todo_wine
> -    {
> -        ok ( ret, "Expected CryptSIPLoad to succeed\n");
> -        /* This error will always be there as native searches for the function DllCanUnloadNow
> -         * in WINTRUST.DLL (in this case). This function is not available in WINTRUST.DLL.
> -         * For now there's no need to implement this is Wine as I doubt any program will rely on
> -         * this last error when the call succeeded.
> -         */
> -        ok ( GetLastError() == ERROR_PROC_NOT_FOUND,
> -            "Expected ERROR_PROC_NOT_FOUND, got 0x%08x\n", GetLastError());
> -        ok( sdi.pfGet != (pCryptSIPGetSignedDataMsg)0xdeadbeef, "Expected a function pointer to be loaded.\n");
> -    }
> +    ok ( ret, "Expected CryptSIPLoad to succeed\n");
> +    ok( sdi.pfGet != (pCryptSIPGetSignedDataMsg)0xdeadbeef, "Expected a function pointer to be loaded.\n");
>  
>      /* The function addresses returned by CryptSIPLoad are actually the addresses of
>       * crypt32's own functions. A function calling these addresses will end up first
> @@ -348,18 +337,8 @@ static void test_SIPLoad(void)
>      sdi.cbSize = sizeof(SIP_DISPATCH_INFO);
>      sdi.pfGet = (pCryptSIPGetSignedDataMsg)0xdeadbeef;
>      ret = CryptSIPLoad(&unknown2, 0, &sdi);
> -    todo_wine
> -    {
> -        ok ( ret, "Expected CryptSIPLoad to succeed\n");
> -        /* This call on it's own would have resulted in a ERROR_PROC_NOT_FOUND, but the previous
> -         * call to CryptSIPLoad already loaded wintrust.dll. As this information is cached,
> -         * CryptSIPLoad will not try to search for the already mentioned DllCanUnloadNow.
> -         */
> -    }
> -    ok ( GetLastError() == 0xdeadbeef,
> -        "Expected 0xdeadbeef, got 0x%08x\n", GetLastError());
> -    todo_wine
> -        ok( sdi.pfGet != (pCryptSIPGetSignedDataMsg)0xdeadbeef, "Expected a function pointer to be loaded.\n");
> +    ok ( ret, "Expected CryptSIPLoad to succeed\n");
> +    ok( sdi.pfGet != (pCryptSIPGetSignedDataMsg)0xdeadbeef, "Expected a function pointer to be loaded.\n");
>  
>      /* All OK, but other SIP */
>      SetLastError(0xdeadbeef);
> 
> 
> ------------------------------------------------------------------------
> 
> 
Hi Juan,

Why did you remove all the comments from the test? It does explain (a little 
bit) how native does get to this specific lasterror. I agree that the lasterror 
is not very valuable.

I've spent quite some time figuring this stuff out and it seems that (at least 
to my perception) information gets lost.

Cheers,

Paul.




More information about the wine-devel mailing list