[PATCH] rpcrt4: Add RpcGetAuthorizationContextForClient stub

Nikolay Sivov nsivov at codeweavers.com
Wed Jan 22 07:34:50 CST 2020



On 1/22/20 3:57 PM, Oleg Dubinskiy wrote:
> rpcrt4: Add RpcGetAuthorizationContextForClient stub
>
> Signed-off-by: Oleg Dubinskiy <oleg.dubinskij2013 at yandex.ua>
> ---
>   dlls/rpcrt4/rpc_async.c | 45 +++++++++++++++++++++++++++++++++++++++++
>   dlls/rpcrt4/rpcrt4.spec |  1 +
>   2 files changed, 46 insertions(+)
>
> diff --git a/dlls/rpcrt4/rpc_async.c b/dlls/rpcrt4/rpc_async.c
> index 00c2d6bede..4f7cd9f7e2 100644
> --- a/dlls/rpcrt4/rpc_async.c
> +++ b/dlls/rpcrt4/rpc_async.c
> @@ -166,3 +166,48 @@ RPC_STATUS WINAPI RpcAsyncCancelCall(PRPC_ASYNC_STATE pAsync, BOOL fAbortCall)
>       FIXME("(%p, %s): stub\n", pAsync, fAbortCall ? "TRUE" : "FALSE");
>       return RPC_S_INVALID_ASYNC_HANDLE;
>   }
> +
> +/***********************************************************************
> + *           RpcGetAuthorizationContextForClient [RPCRT4.@]
> + *
> + * Called by RpcFreeAuthorizationContext to return the Authz context.
That doesn't sound right, why free function would call it?

> + *
> + * PARAMS
> + *  ClientBinding        [I] Binding handle, represents a binding to a client on the server.
> + *  ImpersonateOnReturn  [I] Directs this function to be represented the client on return.
> + *  Reserved1            [I] Reserved, equal to null.
> + *  expiration_time      [I] Points to the exact date and time when the token expires.
> + *  Reserved2            [I] Reserved, equal to a LUID structure which has a members,
> + *                           each of them is set to zero.
> + *  Reserved3            [I] Reserved, equal to zero.
> + *  Reserved4            [I] Reserved, equal to null.
> + *  authz_client_context [I] Points to an AUTHZ_CLIENT_CONTEXT_HANDLE structure
> + *                           that has direct pass to Authz functions.
> + *
> + * RETURNS
> + *  Success: RPC_S_OK.
> + *  Failure: Any error code.
> + */

I know we have those headers for many functions, but in my opinion they 
have no purpose.

> +RPC_STATUS
> +WINAPI
> +RpcGetAuthorizationContextForClient(RPC_BINDING_HANDLE ClientBinding,
> +                                    BOOL ImpersonateOnReturn,
> +                                    void * Reserved1,
> +                                    PLARGE_INTEGER expiration_time,
> +                                    LUID Reserved2,
> +                                    DWORD Reserved3,
> +                                    PVOID Reserved4,
> +                                    PVOID *authz_client_context)
> +{
> +    FIXME("(%p, %d, %p, %p, (%d, %u), %u, %p, %p): stub\n",
> +          ClientBinding,
> +          ImpersonateOnReturn,
> +          Reserved1,
> +          expiration_time,
> +          Reserved2.HighPart,
> +          Reserved2.LowPart,
> +          Reserved3,
> +          Reserved4,
> +          authz_client_context);
> +    return RPC_S_NO_CONTEXT_AVAILABLE;
> +}
> diff --git a/dlls/rpcrt4/rpcrt4.spec b/dlls/rpcrt4/rpcrt4.spec
> index 5d558bff75..56f96ab29a 100644
> --- a/dlls/rpcrt4/rpcrt4.spec
> +++ b/dlls/rpcrt4/rpcrt4.spec
> @@ -387,6 +387,7 @@
>   @ stdcall RpcExceptionFilter(long)
>   @ stub RpcFreeAuthorizationContext # wxp
>   @ stdcall RpcGetAsyncCallStatus(ptr) RpcAsyncGetCallStatus
> +@ stdcall RpcGetAuthorizationContextForClient(ptr long ptr ptr int64 long ptr ptr)
>   @ stub RpcIfIdVectorFree
>   @ stub RpcIfInqId
>   @ stdcall RpcImpersonateClient(ptr)




More information about the wine-devel mailing list