diff --git a/reactos/dll/win32/rpcrt4/ndr_marshall.c b/reactos/dll/win32/rpcrt4/ndr_marshall.c index 3a522bf8430..eb6f676616b 100644 --- a/reactos/dll/win32/rpcrt4/ndr_marshall.c +++ b/reactos/dll/win32/rpcrt4/ndr_marshall.c @@ -3351,6 +3351,9 @@ NDR_SCONTEXT WINAPI NdrServerContextNewUnmarshall(PMIDL_STUB_MESSAGE pStubMsg, return NULL; } +/*********************************************************************** + * NDRCContextBinding + */ RPC_BINDING_HANDLE WINAPI NDRCContextBinding(NDR_CCONTEXT CContext) { if(!CContext) @@ -3358,3 +3361,35 @@ RPC_BINDING_HANDLE WINAPI NDRCContextBinding(NDR_CCONTEXT CContext) return (RPC_BINDING_HANDLE)((CContextHandle*)CContext)->Binding; } + +/*********************************************************************** + * RpcSmDestroyClientContext + */ +RPC_STATUS WINAPI RpcSmDestroyClientContext(void** ContextHandle) +{ + CContextHandle *ctx = (CContextHandle*)ContextHandle; + + if(!ctx) + return RPC_X_SS_CONTEXT_MISMATCH; + + RPCRT4_DestroyBinding(ctx->Binding); + HeapFree(GetProcessHeap(), 0, ctx); + *ContextHandle = NULL; + + return RPC_S_OK; +} + +/*********************************************************************** + * RpcSsDestroyClientContext + */ +void WINAPI RpcSsDestroyClientContext(void** ContextHandle) +{ + RPC_STATUS status; + + status = RpcSmDestroyClientContext(ContextHandle); + + if(status != RPC_S_OK) + RpcRaiseException(status); +} + + diff --git a/reactos/dll/win32/rpcrt4/rpcrt4.spec b/reactos/dll/win32/rpcrt4/rpcrt4.spec index 7cbfc9f1be3..9feecd7fd7a 100644 --- a/reactos/dll/win32/rpcrt4/rpcrt4.spec +++ b/reactos/dll/win32/rpcrt4/rpcrt4.spec @@ -494,7 +494,7 @@ @ stub RpcServerYield @ stub RpcSmAllocate @ stub RpcSmClientFree -@ stub RpcSmDestroyClientContext +@ stdcall RpcSmDestroyClientContext (ptr) @ stub RpcSmDisableAllocate @ stub RpcSmEnableAllocate @ stub RpcSmFree @@ -505,7 +505,7 @@ @ stub RpcSsAllocate @ stub RpcSsContextLockExclusive # wxp @ stub RpcSsContextLockShared # wxp -@ stub RpcSsDestroyClientContext +@ stdcall RpcSsDestroyClientContext (ptr) @ stub RpcSsDisableAllocate @ stub RpcSsDontSerializeContext @ stub RpcSsEnableAllocate