setupapi: Implement SetupOpenLog(), SetupLogErrorA(), SetupLogErrorW(), SetupCloseLog() (try 3)

Pierre Schweitzer pierre at reactos.org
Wed Feb 11 04:24:04 CST 2015


Hi,

forgot to reply. Thanks for all your reviews, they have been all
integrated in the latest submitted patch, which is OK (and working).

And the one that was to be fixed has been fixed (and pushed upstream
already :-)).

Cheers,

On 02/08/2015 02:28 PM, Nikolay Sivov wrote:
> On 08.02.2015 16:17, Pierre Schweitzer wrote:
>> On 08/02/2015 13:46, Nikolay Sivov wrote:
>>>> +    if (MessageString)
>>>> +    {
>>>> +        len = lstrlenA(MessageString) + 1;
>>>> +        msg = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
>>>> +        if (msg == NULL)
>>>> +        {
>>>> +            SetLastError(ERROR_NOT_ENOUGH_MEMORY);
>>>> +            return FALSE;
>>>> +        }
>>>> +        MultiByteToWideChar(CP_ACP, 0, MessageString, -1, msg, len);
>>>> +    }
>>>
>>> That's not how A->W conversion works, we have tons of examples for that.
>>
>> Well....
>> http://source.winehq.org/git/wine.git/blob/HEAD:/dlls/setupapi/query.c#l118
>>
>>
>> Feel free to point at some other location.
> 
> Yes, that one should be fixed too I suppose. Clean way is to call mbtowc
> twice, and first call would return a length of resulting WCHAR string.
> 
>>
>>>>           OsVersionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFOW);
>>>>           if (!GetVersionExW(&OsVersionInfo))
>>>>               return FALSE;
>>>> +        InitializeCriticalSection(&setuplog_critical);
>>>>           SETUPAPI_hInstance = hinstDLL;
>>>>           break;
>>>>       case DLL_PROCESS_DETACH:
>>>>           if (lpvReserved) break;
>>>> +        DeleteCriticalSection(&setuplog_critical);
>>>>           if (CABINET_hInstance) FreeLibrary(CABINET_hInstance);
>>>>           break;
>>>
>>> You won't need these calls once you init it like the rest of Wine code
>>> does. Also what about closing files on DLL_PROCESS_DETACH?
>>
>> I couldn't find any evidence that Windows does this.
>> And they'll be closed as soon the process dies.
> 
> Yes, but it will leak every time you do LoadLibrary/FreeLibrary.
> 
> 


-- 
Pierre Schweitzer <pierre at reactos.org>
System & Network Administrator
Senior Kernel Developer
ReactOS Deutschland e.V.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4277 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20150211/2d29e1f9/attachment.bin>


More information about the wine-devel mailing list