[ros-dev] [ros-diffs] [akhaldi] 64994: [ADVAPI32] * Update ImpersonateNamedPipeClient(). CORE-8540

Aleksey Bragin aleksey at reactos.org
Mon Oct 27 16:19:03 UTC 2014


To be fair, it doesn't:

static __inline BOOL set_ntstatus( NTSTATUS status )
{
if (!NT_SUCCESS(status)) SetLastError( RtlNtStatusToDosError( status ));
return NT_SUCCESS(status);
}

So essentially it's just refactoring.

Regards,
Aleksey

On 26.10.2014 0:25, Pierre Schweitzer wrote:
> And it changes behavior of the functions.
>
> I'd rather trust a !NT_SUCESS(Status)) than a status. This means these
> functions with Wine code would fail on an informational status (whereas
> they didn't before). Is it intentional? Do we have tests to assess such
> behavior?
>
> It's a bit a shame to replace well written ReactOS to Wine code with
> broken style :-(.
>
> On 25/10/2014 22:10, Ged Murphy wrote:
>> Eeww, these are a bit ugly :(
>>
>>
>> On 25/10/2014 19:30, "akhaldi at svn.reactos.org" <akhaldi at svn.reactos.org>
>> wrote:
>>
>>> Author: akhaldi
>>> Date: Sat Oct 25 18:30:05 2014
>>> New Revision: 64994
>>>
>>> URL: http://svn.reactos.org/svn/reactos?rev=64994&view=rev
>>> Log:
>>> [ADVAPI32]
>>> * Update ImpersonateNamedPipeClient().
>>> CORE-8540
>>>
>>> Modified:
>>>     trunk/reactos/dll/win32/advapi32/wine/security.c
>>>
>>> Modified: trunk/reactos/dll/win32/advapi32/wine/security.c
>>> URL:
>>> http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advapi32/wine/s
>>> ecurity.c?rev=64994&r1=64993&r2=64994&view=diff
>>> ==========================================================================
>>> ====
>>> --- trunk/reactos/dll/win32/advapi32/wine/security.c	[iso-8859-1]
>>> (original)
>>> +++ trunk/reactos/dll/win32/advapi32/wine/security.c	[iso-8859-1] Sat Oct
>>> 25 18:30:05 2014
>>> @@ -954,37 +954,14 @@
>>>      return TRUE;
>>> }
>>>
>>> -/**********************************************************************
>>> - * ImpersonateNamedPipeClient			EXPORTED
>>> - *
>>> - * @implemented
>>> - */
>>> -BOOL
>>> -WINAPI
>>> -ImpersonateNamedPipeClient(HANDLE hNamedPipe)
>>> -{
>>> -    IO_STATUS_BLOCK StatusBlock;
>>> -    NTSTATUS Status;
>>> -
>>> -    TRACE("ImpersonateNamedPipeClient() called\n");
>>> -
>>> -    Status = NtFsControlFile(hNamedPipe,
>>> -                             NULL,
>>> -                             NULL,
>>> -                             NULL,
>>> -                             &StatusBlock,
>>> -                             FSCTL_PIPE_IMPERSONATE,
>>> -                             NULL,
>>> -                             0,
>>> -                             NULL,
>>> -                             0);
>>> -    if (!NT_SUCCESS(Status))
>>> -    {
>>> -        SetLastError(RtlNtStatusToDosError(Status));
>>> -        return FALSE;
>>> -    }
>>> -
>>> -    return TRUE;
>>> +BOOL WINAPI ImpersonateNamedPipeClient( HANDLE hNamedPipe )
>>> +{
>>> +    IO_STATUS_BLOCK io_block;
>>> +
>>> +    TRACE("(%p)\n", hNamedPipe);
>>> +
>>> +    return set_ntstatus( NtFsControlFile(hNamedPipe, NULL, NULL, NULL,
>>> +                         &io_block, FSCTL_PIPE_IMPERSONATE, NULL, 0,
>>> NULL, 0) );
>>> }
>>>
>>> /*
>>>
>>>
>>




More information about the Ros-dev mailing list