mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-01 16:43:38 +00:00
ntdll: Move the FSCTL_PIPE_IMPERSONATE semi-stub to the server.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4a49af0cbe
commit
9ac3f24f74
|
@ -5665,8 +5665,8 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
|
|||
|
||||
case FSCTL_PIPE_IMPERSONATE:
|
||||
FIXME("FSCTL_PIPE_IMPERSONATE: impersonating self\n");
|
||||
status = RtlImpersonateSelf( SecurityImpersonation );
|
||||
break;
|
||||
return server_ioctl_file( handle, event, apc, apc_context, io, code,
|
||||
in_buffer, in_size, out_buffer, out_size );
|
||||
|
||||
case FSCTL_IS_VOLUME_MOUNTED:
|
||||
case FSCTL_LOCK_VOLUME:
|
||||
|
|
|
@ -1138,6 +1138,17 @@ static int pipe_server_ioctl( struct fd *fd, ioctl_code_t code, struct async *as
|
|||
pipe_end_disconnect( &server->pipe_end, STATUS_PIPE_DISCONNECTED );
|
||||
return 1;
|
||||
|
||||
case FSCTL_PIPE_IMPERSONATE:
|
||||
if (current->process->token) /* FIXME: use the client token */
|
||||
{
|
||||
struct token *token;
|
||||
if (!(token = token_duplicate( current->process->token, 0, SecurityImpersonation, NULL )))
|
||||
return 0;
|
||||
if (current->token) release_object( current->token );
|
||||
current->token = token;
|
||||
}
|
||||
return 1;
|
||||
|
||||
default:
|
||||
return pipe_end_ioctl( &server->pipe_end, code, async );
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue