windows-nt/Source/XPSP1/NT/com/rpc/runtime/mtrt/sinfoapi.cxx
2020-09-26 16:20:57 +08:00

95 lines
2.3 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1990 - 1999
//
// File: sinfoapi.cxx
//
//--------------------------------------------------------------------------
/* --------------------------------------------------------------------
Microsoft OS/2 LAN Manager
Copyright(c) Microsoft Corp., 1990
-------------------------------------------------------------------- */
/* --------------------------------------------------------------------
File : sinfoapi.cxx
-------------------------------------------------------------------- */
#include <precomp.hxx>
#include <hndlsvr.hxx>
#include <thrdctx.hxx>
/* --------------------------------------------------------------------
A server thread calls this API to obtain the current call handle it should
be using.
-------------------------------------------------------------------- */
RPC_BINDING_HANDLE RPC_ENTRY
I_RpcGetCurrentCallHandle (
)
{
#ifdef RPC_DELAYED_INITIALIZATION
if ( RpcHasBeenInitialized == 0 )
{
RPC_STATUS RpcStatus;
RpcStatus = PerformRpcInitialization();
if ( RpcStatus != RPC_S_OK )
return((RPC_BINDING_HANDLE) 0);
}
#endif // RPC_DELAYED_INITIALIZATION
return(RpcpGetThreadContext());
}
/* --------------------------------------------------------------------
-------------------------------------------------------------------- */
RPC_STATUS RPC_ENTRY
I_RpcServerInqTransportType(
OUT unsigned int __RPC_FAR * Type
)
/*++
Routine Description:
Determines what kind of transport on the current thread
Arguments:
Type - Points to the type of binding if the functions succeeds.
One of:
TRANSPORT_TYPE_CN
TRANSPORT_TYPE_DG
TRANSPORT_TYPE_LPC
TRANSPORT_TYPE_WMSG
Return Value:
RPC_S_OK - The operation completed successfully.
RPC_S_INVALID_BINDING - When the argument is not a binding handle.
--*/
{
SCALL *SCall ;
AssertRpcInitialized();
ASSERT(!RpcpCheckHeap());
SCall = (SCALL *) RpcpGetThreadContext() ;
if (!SCall)
{
return (RPC_S_NO_CALL_ACTIVE) ;
}
return (SCall->InqTransportType(Type)) ;
}