ReactOS  0.4.12-dev-934-g9a4676f
rpcdce.h File Reference
#include <guiddef.h>
#include <rpcdcep.h>
Include dependency graph for rpcdce.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _RPC_BINDING_VECTOR
 
struct  _UUID_VECTOR
 
struct  _RPC_IF_ID
 
struct  RPC_IF_ID_VECTOR
 
struct  RPC_STATS_VECTOR
 
struct  _RPC_PROTSEQ_VECTORA
 
struct  _RPC_PROTSEQ_VECTORW
 
struct  _RPC_POLICY
 
struct  _SEC_WINNT_AUTH_IDENTITY_W
 
struct  _SEC_WINNT_AUTH_IDENTITY_A
 
struct  _RPC_HTTP_TRANSPORT_CREDENTIALS_W
 
struct  _RPC_HTTP_TRANSPORT_CREDENTIALS_A
 
struct  _RPC_SECURITY_QOS
 
struct  _RPC_SECURITY_QOS_V2_W
 
struct  _RPC_SECURITY_QOS_V2_A
 

Macros

#define IN
 
#define OUT
 
#define OPTIONAL
 
#define UUID_DEFINED
 
#define rpc_binding_handle_t   RPC_BINDING_HANDLE
 
#define RPC_MGR_EPV   void
 
#define rpc_binding_vector_t   RPC_BINDING_VECTOR
 
#define uuid_vector_t   UUID_VECTOR
 
#define RPC_C_EP_ALL_ELTS   0
 
#define RPC_C_EP_MATCH_BY_IF   1
 
#define RPC_C_EP_MATCH_BY_OBJ   2
 
#define RPC_C_EP_MATCH_BY_BOTH   3
 
#define RPC_C_VERS_ALL   1
 
#define RPC_C_VERS_COMPATIBLE   2
 
#define RPC_C_VERS_EXACT   3
 
#define RPC_C_VERS_MAJOR_ONLY   4
 
#define RPC_C_VERS_UPTO   5
 
#define RPC_C_BINDING_INFINITE_TIMEOUT   10
 
#define RPC_C_BINDING_MIN_TIMEOUT   0
 
#define RPC_C_BINDING_DEFAULT_TIMEOUT   5
 
#define RPC_C_BINDING_MAX_TIMEOUT   9
 
#define RPC_C_CANCEL_INFINITE_TIMEOUT   -1
 
#define RPC_C_LISTEN_MAX_CALLS_DEFAULT   1234
 
#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT   10
 
#define RPC_PROTSEQ_TCP   0x1
 
#define RPC_PROTSEQ_NMP   0x2
 
#define RPC_PROTSEQ_LRPC   0x3
 
#define RPC_PROTSEQ_HTTP   0x4
 
#define RPC_C_BIND_TO_ALL_NICS   0x1
 
#define RPC_C_USE_INTERNET_PORT   0x1
 
#define RPC_C_USE_INTRANET_PORT   0x2
 
#define RPC_C_DONT_FAIL   0x4
 
#define RPC_C_MQ_TEMPORARY   0x0000
 
#define RPC_C_MQ_PERMANENT   0x0001
 
#define RPC_C_MQ_CLEAR_ON_OPEN   0x0002
 
#define RPC_C_MQ_USE_EXISTING_SECURITY   0x0004
 
#define RPC_C_MQ_AUTHN_LEVEL_NONE   0x0000
 
#define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY   0x0008
 
#define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY   0x0010
 
#define RPC_C_AUTHN_LEVEL_DEFAULT   0
 
#define RPC_C_AUTHN_LEVEL_NONE   1
 
#define RPC_C_AUTHN_LEVEL_CONNECT   2
 
#define RPC_C_AUTHN_LEVEL_CALL   3
 
#define RPC_C_AUTHN_LEVEL_PKT   4
 
#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY   5
 
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY   6
 
#define RPC_C_AUTHN_NONE   0
 
#define RPC_C_AUTHN_DCE_PRIVATE   1
 
#define RPC_C_AUTHN_DCE_PUBLIC   2
 
#define RPC_C_AUTHN_DEC_PUBLIC   4
 
#define RPC_C_AUTHN_GSS_NEGOTIATE   9
 
#define RPC_C_AUTHN_WINNT   10
 
#define RPC_C_AUTHN_GSS_SCHANNEL   14
 
#define RPC_C_AUTHN_GSS_KERBEROS   16
 
#define RPC_C_AUTHN_DPA   17
 
#define RPC_C_AUTHN_MSN   18
 
#define RPC_C_AUTHN_DIGEST   21
 
#define RPC_C_AUTHN_MQ   100
 
#define RPC_C_AUTHN_DEFAULT   0xffffffff
 
#define RPC_C_AUTHZ_NONE   0
 
#define RPC_C_AUTHZ_NAME   1
 
#define RPC_C_AUTHZ_DCE   2
 
#define RPC_C_AUTHZ_DEFAULT   0xffffffff
 
#define RPC_C_IMP_LEVEL_DEFAULT   0
 
#define RPC_C_IMP_LEVEL_ANONYMOUS   1
 
#define RPC_C_IMP_LEVEL_IDENTIFY   2
 
#define RPC_C_IMP_LEVEL_IMPERSONATE   3
 
#define RPC_C_IMP_LEVEL_DELEGATE   4
 
#define RPC_C_QOS_IDENTITY_STATIC   0
 
#define RPC_C_QOS_IDENTITY_DYNAMIC   1
 
#define RPC_C_QOS_CAPABILITIES_DEFAULT   0x0
 
#define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH   0x1
 
#define RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC   0x2
 
#define RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY   0x4
 
#define RPC_C_SECURITY_QOS_VERSION   1
 
#define RPC_C_SECURITY_QOS_VERSION_1   1
 
#define RPC_C_SECURITY_QOS_VERSION_2   2
 
#define RPC_C_AUTHN_INFO_TYPE_HTTP   1
 
#define RPC_C_HTTP_FLAG_USE_SSL   0x1
 
#define RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME   0x2
 
#define RPC_C_HTTP_AUTHN_TARGET_SERVER   1
 
#define RPC_C_HTTP_AUTHN_TARGET_PROXY   2
 
#define RPC_C_HTTP_AUTHN_SCHEME_BASIC   0x01
 
#define RPC_C_HTTP_AUTHN_SCHEME_NTLM   0x02
 
#define RPC_C_HTTP_AUTHN_SCHEME_PASSPORT   0x04
 
#define RPC_C_HTTP_AUTHN_SCHEME_DIGEST   0x08
 
#define RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE   0x10
 
#define _SEC_WINNT_AUTH_IDENTITY   WINELIB_NAME_AW(_SEC_WINNT_AUTH_IDENTITY_)
 
#define SEC_WINNT_AUTH_IDENTITY   WINELIB_NAME_AW(SEC_WINNT_AUTH_IDENTITY_)
 
#define PSEC_WINNT_AUTH_IDENTITY   WINELIB_NAME_AW(PSEC_WINNT_AUTH_IDENTITY_)
 
#define RPC_HTTP_TRANSPORT_CREDENTIALS_   WINELIB_NAME_AW(RPC_HTTP_TRANSPORT_CREDENTIALS_)
 
#define PRPC_HTTP_TRANSPORT_CREDENTIALS_   WINELIB_NAME_AW(PRPC_HTTP_TRANSPORT_CREDENTIALS_)
 
#define _RPC_HTTP_TRANSPORT_CREDENTIALS_   WINELIB_NAME_AW(_RPC_HTTP_TRANSPORT_CREDENTIALS_)
 
#define RPC_SECURITY_QOS_V2   WINELIB_NAME_AW(RPC_SECURITY_QOS_V2_)
 
#define PRPC_SECURITY_QOS_V2   WINELIB_NAME_AW(PRPC_SECURITY_QOS_V2_)
 
#define _RPC_SECURITY_QOS_V2   WINELIB_NAME_AW(_RPC_SECURITY_QOS_V2_)
 
#define SEC_WINNT_AUTH_IDENTITY_ANSI   0x1
 
#define SEC_WINNT_AUTH_IDENTITY_UNICODE   0x2
 
#define RPC_IF_AUTOLISTEN   0x01
 
#define RPC_IF_OLE   0x02
 
#define RPC_IF_ALLOW_UNKNOWN_AUTHORITY   0x04
 
#define RPC_IF_ALLOW_SECURE_ONLY   0x08
 
#define RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH   0x10
 
#define RPC_IF_ALLOW_LOCAL_ONLY   0x20
 
#define RPC_IF_SEC_NO_CACHE   0x40
 
#define DceErrorInqText   WINELIB_NAME_AW(DceErrorInqText)
 
#define RpcBindingFromStringBinding   WINELIB_NAME_AW(RpcBindingFromStringBinding)
 
#define RpcBindingToStringBinding   WINELIB_NAME_AW(RpcBindingToStringBinding)
 
#define RpcStringBindingCompose   WINELIB_NAME_AW(RpcStringBindingCompose)
 
#define RpcStringBindingParse   WINELIB_NAME_AW(RpcStringBindingParse)
 
#define RpcEpRegister   WINELIB_NAME_AW(RpcEpRegister)
 
#define RpcEpRegisterNoReplace   WINELIB_NAME_AW(RpcEpRegisterNoReplace)
 
#define RpcServerUseProtseq   WINELIB_NAME_AW(RpcServerUseProtseq)
 
#define RpcServerUseProtseqEp   WINELIB_NAME_AW(RpcServerUseProtseqEp)
 
#define RpcServerUseProtseqEpEx   WINELIB_NAME_AW(RpcServerUseProtseqEpEx)
 
#define RpcServerRegisterAuthInfo   WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
 
#define RpcBindingSetAuthInfoEx   WINELIB_NAME_AW(RpcBindingSetAuthInfoEx)
 
#define RpcBindingSetAuthInfo   WINELIB_NAME_AW(RpcBindingSetAuthInfo)
 
#define RpcBindingInqAuthInfoEx   WINELIB_NAME_AW(RpcBindingInqAuthInfoEx)
 
#define RpcBindingInqAuthInfo   WINELIB_NAME_AW(RpcBindingInqAuthInfo)
 
#define RpcBindingInqAuthClient   WINELIB_NAME_AW(RpcBindingInqAuthClient)
 
#define RpcBindingInqAuthClientEx   WINELIB_NAME_AW(RpcBindingInqAuthClientEx)
 
#define RpcNetworkIsProtseqValid   WINELIB_NAME_AW(RpcNetworkIsProtseqValid)
 
#define RpcNetworkInqProtseqs   WINELIB_NAME_AW(RpcNetworkInqProtseqs)
 
#define RpcProtseqVectorFree   WINELIB_NAME_AW(RpcProtseqVectorFree)
 
#define RpcStringFree   WINELIB_NAME_AW(RpcStringFree)
 
#define UuidToString   WINELIB_NAME_AW(UuidToString)
 
#define UuidFromString   WINELIB_NAME_AW(UuidFromString)
 
#define RpcServerInqDefaultPrincName   WINELIB_NAME_AW(RpcServerInqDefaultPrincName)
 

Typedefs

typedef GUID UUID
 
typedef unsigned charRPC_CSTR
 
typedef unsigned shortRPC_WSTR
 
typedef voidRPC_AUTH_IDENTITY_HANDLE
 
typedef voidRPC_AUTHZ_HANDLE
 
typedef voidRPC_IF_HANDLE
 
typedef I_RPC_HANDLE RPC_BINDING_HANDLE
 
typedef RPC_BINDING_HANDLE handle_t
 
typedef struct _RPC_BINDING_VECTOR RPC_BINDING_VECTOR
 
typedef struct _UUID_VECTOR UUID_VECTOR
 
typedef struct _RPC_IF_ID RPC_IF_ID
 
typedef struct _RPC_PROTSEQ_VECTORA RPC_PROTSEQ_VECTORA
 
typedef struct _RPC_PROTSEQ_VECTORW RPC_PROTSEQ_VECTORW
 
typedef I_RPC_HANDLERPC_EP_INQ_HANDLE
 
typedef RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN(RPC_IF_HANDLE InterfaceUuid, void *Context)
 
typedef void(__RPC_USERRPC_AUTH_KEY_RETRIEVAL_FN) (void *, RPC_WSTR, ULONG, void **, RPC_STATUS *)
 
typedef struct _RPC_POLICY RPC_POLICY
 
typedef struct _RPC_POLICYPRPC_POLICY
 
typedef struct _SEC_WINNT_AUTH_IDENTITY_W SEC_WINNT_AUTH_IDENTITY_W
 
typedef struct _SEC_WINNT_AUTH_IDENTITY_WPSEC_WINNT_AUTH_IDENTITY_W
 
typedef struct _SEC_WINNT_AUTH_IDENTITY_A SEC_WINNT_AUTH_IDENTITY_A
 
typedef struct _SEC_WINNT_AUTH_IDENTITY_APSEC_WINNT_AUTH_IDENTITY_A
 
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_W RPC_HTTP_TRANSPORT_CREDENTIALS_W
 
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_WPRPC_HTTP_TRANSPORT_CREDENTIALS_W
 
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A RPC_HTTP_TRANSPORT_CREDENTIALS_A
 
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_APRPC_HTTP_TRANSPORT_CREDENTIALS_A
 
typedef struct _RPC_SECURITY_QOS RPC_SECURITY_QOS
 
typedef struct _RPC_SECURITY_QOSPRPC_SECURITY_QOS
 
typedef struct _RPC_SECURITY_QOS_V2_W RPC_SECURITY_QOS_V2_W
 
typedef struct _RPC_SECURITY_QOS_V2_WPRPC_SECURITY_QOS_V2_W
 
typedef struct _RPC_SECURITY_QOS_V2_A RPC_SECURITY_QOS_V2_A
 
typedef struct _RPC_SECURITY_QOS_V2_APRPC_SECURITY_QOS_V2_A
 
typedef int(__RPC_APIRPC_MGMT_AUTHORIZATION_FN) (RPC_BINDING_HANDLE, ULONG, RPC_STATUS *)
 

Functions

RPC_STATUS RPC_ENTRY DceErrorInqTextA (RPC_STATUS e, RPC_CSTR buffer)
 
RPC_STATUS RPC_ENTRY DceErrorInqTextW (RPC_STATUS e, RPC_WSTR buffer)
 
RPCRTAPI DECLSPEC_NORETURN void RPC_ENTRY RpcRaiseException (RPC_STATUS exception)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingCopy (RPC_BINDING_HANDLE SourceBinding, RPC_BINDING_HANDLE *DestinationBinding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFree (RPC_BINDING_HANDLE *Binding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqObject (RPC_BINDING_HANDLE Binding, UUID *ObjectUuid)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqOption (RPC_BINDING_HANDLE Binding, ULONG Option, ULONG_PTR *OptionValue)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingReset (RPC_BINDING_HANDLE Binding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingServerFromClient (RPC_BINDING_HANDLE ClientBinding, RPC_BINDING_HANDLE *ServerBinding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetObject (RPC_BINDING_HANDLE Binding, UUID *ObjectUuid)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetOption (RPC_BINDING_HANDLE Binding, ULONG Option, ULONG_PTR OptionValue)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcObjectSetType (UUID *ObjUuid, UUID *TypeUuid)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingA (RPC_CSTR StringBinding, RPC_BINDING_HANDLE *Binding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingW (RPC_WSTR StringBinding, RPC_BINDING_HANDLE *Binding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingToStringBindingA (RPC_BINDING_HANDLE Binding, RPC_CSTR *StringBinding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingToStringBindingW (RPC_BINDING_HANDLE Binding, RPC_WSTR *StringBinding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingVectorFree (RPC_BINDING_VECTOR **BindingVector)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingComposeA (RPC_CSTR ObjUuid, RPC_CSTR Protseq, RPC_CSTR NetworkAddr, RPC_CSTR Endpoint, RPC_CSTR Options, RPC_CSTR *StringBinding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingComposeW (RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingParseA (RPC_CSTR StringBinding, RPC_CSTR *ObjUuid, RPC_CSTR *Protseq, RPC_CSTR *NetworkAddr, RPC_CSTR *Endpoint, RPC_CSTR *NetworkOptions)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringBindingParseW (RPC_WSTR StringBinding, RPC_WSTR *ObjUuid, RPC_WSTR *Protseq, RPC_WSTR *NetworkAddr, RPC_WSTR *Endpoint, RPC_WSTR *NetworkOptions)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpResolveBinding (RPC_BINDING_HANDLE Binding, RPC_IF_HANDLE IfSpec)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterA (RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_CSTR Annotation)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterW (RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_WSTR Annotation)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceA (RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_CSTR Annotation)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceW (RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_WSTR Annotation)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpUnregister (RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqBindings (RPC_BINDING_VECTOR **BindingVector)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerListen (unsigned int MinimumCallThreads, unsigned int MaxCalls, unsigned int DontWait)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEnableIdleCleanup (void)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetAuthorizationFn (RPC_MGMT_AUTHORIZATION_FN)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetCancelTimeout (LONG)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtWaitServerListen (void)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqStats (RPC_BINDING_HANDLE Binding, RPC_STATS_VECTOR **Statistics)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtStopServerListening (RPC_BINDING_HANDLE Binding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtIsServerListening (RPC_BINDING_HANDLE Binding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqIfIds (RPC_BINDING_HANDLE Binding, RPC_IF_ID_VECTOR **IfIdVector)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqBegin (RPC_BINDING_HANDLE EpBinding, ULONG InquiryType, RPC_IF_ID *IfId, ULONG VersOption, UUID *ObjectUuid, RPC_EP_INQ_HANDLE *InquiryContext)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetComTimeout (RPC_BINDING_HANDLE Binding, unsigned int Timeout)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetServerStackSize (ULONG ThreadStackSize)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtStatsVectorFree (RPC_STATS_VECTOR **StatsVector)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIf (RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIfEx (RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv, unsigned int Flags, unsigned int MaxCalls, RPC_IF_CALLBACK_FN *IfCallbackFn)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIf2 (RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv, unsigned int Flags, unsigned int MaxCalls, unsigned int MaxRpcSize, RPC_IF_CALLBACK_FN *IfCallbackFn)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterIf3 (RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv, unsigned int Flags, unsigned int MaxCalls, unsigned int MaxRpcSize, RPC_IF_CALLBACK_FN *IfCallbackFn, void *SecurityDescriptor)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUnregisterIf (RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, unsigned int WaitForCallsToComplete)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUnregisterIfEx (RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, int RundownContextHandles)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqA (RPC_CSTR Protseq, unsigned int MaxCalls, void *SecurityDescriptor)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqW (RPC_WSTR Protseq, unsigned int MaxCalls, void *SecurityDescriptor)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpA (RPC_CSTR Protseq, unsigned int MaxCalls, RPC_CSTR Endpoint, void *SecurityDescriptor)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpW (RPC_WSTR Protseq, unsigned int MaxCalls, RPC_WSTR Endpoint, void *SecurityDescriptor)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExA (RPC_CSTR Protseq, unsigned int MaxCalls, RPC_CSTR Endpoint, void *SecurityDescriptor, PRPC_POLICY Policy)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerUseProtseqEpExW (RPC_WSTR Protseq, unsigned int MaxCalls, RPC_WSTR Endpoint, void *SecurityDescriptor, PRPC_POLICY Policy)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoA (RPC_CSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, void *Arg)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerRegisterAuthInfoW (RPC_WSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, void *Arg)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExA (RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr, RPC_SECURITY_QOS *SecurityQos)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExW (RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr, RPC_SECURITY_QOS *SecurityQos)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA (RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoW (RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExA (RPC_BINDING_HANDLE Binding, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc, ULONG RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExW (RPC_BINDING_HANDLE Binding, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc, ULONG RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoA (RPC_BINDING_HANDLE Binding, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoW (RPC_BINDING_HANDLE Binding, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientA (RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientW (RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExA (RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc, ULONG Flags)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExW (RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc, ULONG Flags)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThread (void *)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThreadEx (void *, LONG)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcImpersonateClient (RPC_BINDING_HANDLE Binding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidA (RPC_CSTR protseq)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidW (RPC_WSTR protseq)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsA (RPC_PROTSEQ_VECTORA **protseqs)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsW (RPC_PROTSEQ_VECTORW **protseqs)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeA (RPC_PROTSEQ_VECTORA **protseqs)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeW (RPC_PROTSEQ_VECTORW **protseqs)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcRevertToSelf (void)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcRevertToSelfEx (RPC_BINDING_HANDLE Binding)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringFreeA (RPC_CSTR *String)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcStringFreeW (RPC_WSTR *String)
 
RPCRTAPI RPC_STATUS RPC_ENTRY UuidToStringA (UUID *Uuid, RPC_CSTR *StringUuid)
 
RPCRTAPI RPC_STATUS RPC_ENTRY UuidToStringW (UUID *Uuid, RPC_WSTR *StringUuid)
 
RPCRTAPI RPC_STATUS RPC_ENTRY UuidFromStringA (RPC_CSTR StringUuid, UUID *Uuid)
 
RPCRTAPI RPC_STATUS RPC_ENTRY UuidFromStringW (RPC_WSTR StringUuid, UUID *Uuid)
 
RPCRTAPI RPC_STATUS RPC_ENTRY UuidCreate (UUID *Uuid)
 
RPCRTAPI RPC_STATUS RPC_ENTRY UuidCreateSequential (UUID *Uuid)
 
RPCRTAPI RPC_STATUS RPC_ENTRY UuidCreateNil (UUID *Uuid)
 
RPCRTAPI signed int RPC_ENTRY UuidCompare (UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status_)
 
RPCRTAPI int RPC_ENTRY UuidEqual (UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status_)
 
RPCRTAPI unsigned short RPC_ENTRY UuidHash (UUID *Uuid, RPC_STATUS *Status_)
 
RPCRTAPI int RPC_ENTRY UuidIsNil (UUID *Uuid, RPC_STATUS *Status_)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameA (ULONG AuthnSvc, RPC_CSTR *PrincName)
 
RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameW (ULONG AuthnSvc, RPC_WSTR *PrincName)
 

Macro Definition Documentation

◆ _RPC_HTTP_TRANSPORT_CREDENTIALS_

#define _RPC_HTTP_TRANSPORT_CREDENTIALS_   WINELIB_NAME_AW(_RPC_HTTP_TRANSPORT_CREDENTIALS_)

Definition at line 302 of file rpcdce.h.

◆ _RPC_SECURITY_QOS_V2

#define _RPC_SECURITY_QOS_V2   WINELIB_NAME_AW(_RPC_SECURITY_QOS_V2_)

Definition at line 306 of file rpcdce.h.

◆ _SEC_WINNT_AUTH_IDENTITY

#define _SEC_WINNT_AUTH_IDENTITY   WINELIB_NAME_AW(_SEC_WINNT_AUTH_IDENTITY_)

Definition at line 296 of file rpcdce.h.

◆ DceErrorInqText

#define DceErrorInqText   WINELIB_NAME_AW(DceErrorInqText)

Definition at line 323 of file rpcdce.h.

◆ IN

#define IN

Definition at line 27 of file rpcdce.h.

◆ OPTIONAL

Definition at line 33 of file rpcdce.h.

◆ OUT

#define OUT

Definition at line 30 of file rpcdce.h.

◆ PRPC_HTTP_TRANSPORT_CREDENTIALS_

#define PRPC_HTTP_TRANSPORT_CREDENTIALS_   WINELIB_NAME_AW(PRPC_HTTP_TRANSPORT_CREDENTIALS_)

Definition at line 301 of file rpcdce.h.

◆ PRPC_SECURITY_QOS_V2

#define PRPC_SECURITY_QOS_V2   WINELIB_NAME_AW(PRPC_SECURITY_QOS_V2_)

Definition at line 305 of file rpcdce.h.

◆ PSEC_WINNT_AUTH_IDENTITY

#define PSEC_WINNT_AUTH_IDENTITY   WINELIB_NAME_AW(PSEC_WINNT_AUTH_IDENTITY_)

Definition at line 298 of file rpcdce.h.

◆ rpc_binding_handle_t

#define rpc_binding_handle_t   RPC_BINDING_HANDLE

Definition at line 52 of file rpcdce.h.

◆ rpc_binding_vector_t

#define rpc_binding_vector_t   RPC_BINDING_VECTOR

Definition at line 60 of file rpcdce.h.

◆ RPC_C_AUTHN_DCE_PRIVATE

#define RPC_C_AUTHN_DCE_PRIVATE   1

Definition at line 154 of file rpcdce.h.

◆ RPC_C_AUTHN_DCE_PUBLIC

#define RPC_C_AUTHN_DCE_PUBLIC   2

Definition at line 155 of file rpcdce.h.

◆ RPC_C_AUTHN_DEC_PUBLIC

#define RPC_C_AUTHN_DEC_PUBLIC   4

Definition at line 156 of file rpcdce.h.

◆ RPC_C_AUTHN_DEFAULT

#define RPC_C_AUTHN_DEFAULT   0xffffffff

Definition at line 165 of file rpcdce.h.

◆ RPC_C_AUTHN_DIGEST

#define RPC_C_AUTHN_DIGEST   21

Definition at line 163 of file rpcdce.h.

◆ RPC_C_AUTHN_DPA

#define RPC_C_AUTHN_DPA   17

Definition at line 161 of file rpcdce.h.

◆ RPC_C_AUTHN_GSS_KERBEROS

#define RPC_C_AUTHN_GSS_KERBEROS   16

Definition at line 160 of file rpcdce.h.

◆ RPC_C_AUTHN_GSS_NEGOTIATE

#define RPC_C_AUTHN_GSS_NEGOTIATE   9

Definition at line 157 of file rpcdce.h.

◆ RPC_C_AUTHN_GSS_SCHANNEL

#define RPC_C_AUTHN_GSS_SCHANNEL   14

Definition at line 159 of file rpcdce.h.

◆ RPC_C_AUTHN_INFO_TYPE_HTTP

#define RPC_C_AUTHN_INFO_TYPE_HTTP   1

Definition at line 195 of file rpcdce.h.

◆ RPC_C_AUTHN_LEVEL_CALL

#define RPC_C_AUTHN_LEVEL_CALL   3

Definition at line 148 of file rpcdce.h.

◆ RPC_C_AUTHN_LEVEL_CONNECT

#define RPC_C_AUTHN_LEVEL_CONNECT   2

Definition at line 147 of file rpcdce.h.

◆ RPC_C_AUTHN_LEVEL_DEFAULT

#define RPC_C_AUTHN_LEVEL_DEFAULT   0

Definition at line 145 of file rpcdce.h.

◆ RPC_C_AUTHN_LEVEL_NONE

#define RPC_C_AUTHN_LEVEL_NONE   1

Definition at line 146 of file rpcdce.h.

◆ RPC_C_AUTHN_LEVEL_PKT

#define RPC_C_AUTHN_LEVEL_PKT   4

Definition at line 149 of file rpcdce.h.

◆ RPC_C_AUTHN_LEVEL_PKT_INTEGRITY

#define RPC_C_AUTHN_LEVEL_PKT_INTEGRITY   5

Definition at line 150 of file rpcdce.h.

◆ RPC_C_AUTHN_LEVEL_PKT_PRIVACY

#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY   6

Definition at line 151 of file rpcdce.h.

◆ RPC_C_AUTHN_MQ

#define RPC_C_AUTHN_MQ   100

Definition at line 164 of file rpcdce.h.

◆ RPC_C_AUTHN_MSN

#define RPC_C_AUTHN_MSN   18

Definition at line 162 of file rpcdce.h.

◆ RPC_C_AUTHN_NONE

#define RPC_C_AUTHN_NONE   0

Definition at line 153 of file rpcdce.h.

◆ RPC_C_AUTHN_WINNT

#define RPC_C_AUTHN_WINNT   10

Definition at line 158 of file rpcdce.h.

◆ RPC_C_AUTHZ_DCE

#define RPC_C_AUTHZ_DCE   2

Definition at line 169 of file rpcdce.h.

◆ RPC_C_AUTHZ_DEFAULT

#define RPC_C_AUTHZ_DEFAULT   0xffffffff

Definition at line 170 of file rpcdce.h.

◆ RPC_C_AUTHZ_NAME

#define RPC_C_AUTHZ_NAME   1

Definition at line 168 of file rpcdce.h.

◆ RPC_C_AUTHZ_NONE

#define RPC_C_AUTHZ_NONE   0

Definition at line 167 of file rpcdce.h.

◆ RPC_C_BIND_TO_ALL_NICS

#define RPC_C_BIND_TO_ALL_NICS   0x1

Definition at line 131 of file rpcdce.h.

◆ RPC_C_BINDING_DEFAULT_TIMEOUT

#define RPC_C_BINDING_DEFAULT_TIMEOUT   5

Definition at line 117 of file rpcdce.h.

◆ RPC_C_BINDING_INFINITE_TIMEOUT

#define RPC_C_BINDING_INFINITE_TIMEOUT   10

Definition at line 115 of file rpcdce.h.

◆ RPC_C_BINDING_MAX_TIMEOUT

#define RPC_C_BINDING_MAX_TIMEOUT   9

Definition at line 118 of file rpcdce.h.

◆ RPC_C_BINDING_MIN_TIMEOUT

#define RPC_C_BINDING_MIN_TIMEOUT   0

Definition at line 116 of file rpcdce.h.

◆ RPC_C_CANCEL_INFINITE_TIMEOUT

#define RPC_C_CANCEL_INFINITE_TIMEOUT   -1

Definition at line 120 of file rpcdce.h.

◆ RPC_C_DONT_FAIL

#define RPC_C_DONT_FAIL   0x4

Definition at line 134 of file rpcdce.h.

◆ RPC_C_EP_ALL_ELTS

#define RPC_C_EP_ALL_ELTS   0

Definition at line 104 of file rpcdce.h.

◆ RPC_C_EP_MATCH_BY_BOTH

#define RPC_C_EP_MATCH_BY_BOTH   3

Definition at line 107 of file rpcdce.h.

◆ RPC_C_EP_MATCH_BY_IF

#define RPC_C_EP_MATCH_BY_IF   1

Definition at line 105 of file rpcdce.h.

◆ RPC_C_EP_MATCH_BY_OBJ

#define RPC_C_EP_MATCH_BY_OBJ   2

Definition at line 106 of file rpcdce.h.

◆ RPC_C_HTTP_AUTHN_SCHEME_BASIC

#define RPC_C_HTTP_AUTHN_SCHEME_BASIC   0x01

Definition at line 205 of file rpcdce.h.

◆ RPC_C_HTTP_AUTHN_SCHEME_DIGEST

#define RPC_C_HTTP_AUTHN_SCHEME_DIGEST   0x08

Definition at line 208 of file rpcdce.h.

◆ RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE

#define RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE   0x10

Definition at line 209 of file rpcdce.h.

◆ RPC_C_HTTP_AUTHN_SCHEME_NTLM

#define RPC_C_HTTP_AUTHN_SCHEME_NTLM   0x02

Definition at line 206 of file rpcdce.h.

◆ RPC_C_HTTP_AUTHN_SCHEME_PASSPORT

#define RPC_C_HTTP_AUTHN_SCHEME_PASSPORT   0x04

Definition at line 207 of file rpcdce.h.

◆ RPC_C_HTTP_AUTHN_TARGET_PROXY

#define RPC_C_HTTP_AUTHN_TARGET_PROXY   2

Definition at line 203 of file rpcdce.h.

◆ RPC_C_HTTP_AUTHN_TARGET_SERVER

#define RPC_C_HTTP_AUTHN_TARGET_SERVER   1

Definition at line 202 of file rpcdce.h.

◆ RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME

#define RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME   0x2

Definition at line 199 of file rpcdce.h.

◆ RPC_C_HTTP_FLAG_USE_SSL

#define RPC_C_HTTP_FLAG_USE_SSL   0x1

Definition at line 198 of file rpcdce.h.

◆ RPC_C_IMP_LEVEL_ANONYMOUS

#define RPC_C_IMP_LEVEL_ANONYMOUS   1

Definition at line 174 of file rpcdce.h.

◆ RPC_C_IMP_LEVEL_DEFAULT

#define RPC_C_IMP_LEVEL_DEFAULT   0

Definition at line 173 of file rpcdce.h.

◆ RPC_C_IMP_LEVEL_DELEGATE

#define RPC_C_IMP_LEVEL_DELEGATE   4

Definition at line 177 of file rpcdce.h.

◆ RPC_C_IMP_LEVEL_IDENTIFY

#define RPC_C_IMP_LEVEL_IDENTIFY   2

Definition at line 175 of file rpcdce.h.

◆ RPC_C_IMP_LEVEL_IMPERSONATE

#define RPC_C_IMP_LEVEL_IMPERSONATE   3

Definition at line 176 of file rpcdce.h.

◆ RPC_C_LISTEN_MAX_CALLS_DEFAULT

#define RPC_C_LISTEN_MAX_CALLS_DEFAULT   1234

Definition at line 122 of file rpcdce.h.

◆ RPC_C_MQ_AUTHN_LEVEL_NONE

#define RPC_C_MQ_AUTHN_LEVEL_NONE   0x0000

Definition at line 141 of file rpcdce.h.

◆ RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY

#define RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY   0x0008

Definition at line 142 of file rpcdce.h.

◆ RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY

#define RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY   0x0010

Definition at line 143 of file rpcdce.h.

◆ RPC_C_MQ_CLEAR_ON_OPEN

#define RPC_C_MQ_CLEAR_ON_OPEN   0x0002

Definition at line 139 of file rpcdce.h.

◆ RPC_C_MQ_PERMANENT

#define RPC_C_MQ_PERMANENT   0x0001

Definition at line 138 of file rpcdce.h.

◆ RPC_C_MQ_TEMPORARY

#define RPC_C_MQ_TEMPORARY   0x0000

Definition at line 137 of file rpcdce.h.

◆ RPC_C_MQ_USE_EXISTING_SECURITY

#define RPC_C_MQ_USE_EXISTING_SECURITY   0x0004

Definition at line 140 of file rpcdce.h.

◆ RPC_C_PROTSEQ_MAX_REQS_DEFAULT

#define RPC_C_PROTSEQ_MAX_REQS_DEFAULT   10

Definition at line 123 of file rpcdce.h.

◆ RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY

#define RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY   0x4

Definition at line 187 of file rpcdce.h.

◆ RPC_C_QOS_CAPABILITIES_DEFAULT

#define RPC_C_QOS_CAPABILITIES_DEFAULT   0x0

Definition at line 184 of file rpcdce.h.

◆ RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC

#define RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC   0x2

Definition at line 186 of file rpcdce.h.

◆ RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH

#define RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH   0x1

Definition at line 185 of file rpcdce.h.

◆ RPC_C_QOS_IDENTITY_DYNAMIC

#define RPC_C_QOS_IDENTITY_DYNAMIC   1

Definition at line 181 of file rpcdce.h.

◆ RPC_C_QOS_IDENTITY_STATIC

#define RPC_C_QOS_IDENTITY_STATIC   0

Definition at line 180 of file rpcdce.h.

◆ RPC_C_SECURITY_QOS_VERSION

#define RPC_C_SECURITY_QOS_VERSION   1

Definition at line 190 of file rpcdce.h.

◆ RPC_C_SECURITY_QOS_VERSION_1

#define RPC_C_SECURITY_QOS_VERSION_1   1

Definition at line 191 of file rpcdce.h.

◆ RPC_C_SECURITY_QOS_VERSION_2

#define RPC_C_SECURITY_QOS_VERSION_2   2

Definition at line 192 of file rpcdce.h.

◆ RPC_C_USE_INTERNET_PORT

#define RPC_C_USE_INTERNET_PORT   0x1

Definition at line 132 of file rpcdce.h.

◆ RPC_C_USE_INTRANET_PORT

#define RPC_C_USE_INTRANET_PORT   0x2

Definition at line 133 of file rpcdce.h.

◆ RPC_C_VERS_ALL

#define RPC_C_VERS_ALL   1

Definition at line 109 of file rpcdce.h.

◆ RPC_C_VERS_COMPATIBLE

#define RPC_C_VERS_COMPATIBLE   2

Definition at line 110 of file rpcdce.h.

◆ RPC_C_VERS_EXACT

#define RPC_C_VERS_EXACT   3

Definition at line 111 of file rpcdce.h.

◆ RPC_C_VERS_MAJOR_ONLY

#define RPC_C_VERS_MAJOR_ONLY   4

Definition at line 112 of file rpcdce.h.

◆ RPC_C_VERS_UPTO

#define RPC_C_VERS_UPTO   5

Definition at line 113 of file rpcdce.h.

◆ RPC_HTTP_TRANSPORT_CREDENTIALS_

#define RPC_HTTP_TRANSPORT_CREDENTIALS_   WINELIB_NAME_AW(RPC_HTTP_TRANSPORT_CREDENTIALS_)

Definition at line 300 of file rpcdce.h.

◆ RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH

#define RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH   0x10

Definition at line 317 of file rpcdce.h.

◆ RPC_IF_ALLOW_LOCAL_ONLY

#define RPC_IF_ALLOW_LOCAL_ONLY   0x20

Definition at line 318 of file rpcdce.h.

◆ RPC_IF_ALLOW_SECURE_ONLY

#define RPC_IF_ALLOW_SECURE_ONLY   0x08

Definition at line 316 of file rpcdce.h.

◆ RPC_IF_ALLOW_UNKNOWN_AUTHORITY

#define RPC_IF_ALLOW_UNKNOWN_AUTHORITY   0x04

Definition at line 315 of file rpcdce.h.

◆ RPC_IF_AUTOLISTEN

#define RPC_IF_AUTOLISTEN   0x01

Definition at line 313 of file rpcdce.h.

◆ RPC_IF_OLE

#define RPC_IF_OLE   0x02

Definition at line 314 of file rpcdce.h.

◆ RPC_IF_SEC_NO_CACHE

#define RPC_IF_SEC_NO_CACHE   0x40

Definition at line 319 of file rpcdce.h.

◆ RPC_MGR_EPV

#define RPC_MGR_EPV   void

Definition at line 53 of file rpcdce.h.

◆ RPC_PROTSEQ_HTTP

#define RPC_PROTSEQ_HTTP   0x4

Definition at line 128 of file rpcdce.h.

◆ RPC_PROTSEQ_LRPC

#define RPC_PROTSEQ_LRPC   0x3

Definition at line 127 of file rpcdce.h.

◆ RPC_PROTSEQ_NMP

#define RPC_PROTSEQ_NMP   0x2

Definition at line 126 of file rpcdce.h.

◆ RPC_PROTSEQ_TCP

#define RPC_PROTSEQ_TCP   0x1

Definition at line 125 of file rpcdce.h.

◆ RPC_SECURITY_QOS_V2

#define RPC_SECURITY_QOS_V2   WINELIB_NAME_AW(RPC_SECURITY_QOS_V2_)

Definition at line 304 of file rpcdce.h.

◆ RpcBindingFromStringBinding

#define RpcBindingFromStringBinding   WINELIB_NAME_AW(RpcBindingFromStringBinding)

Definition at line 353 of file rpcdce.h.

◆ RpcBindingInqAuthClient

#define RpcBindingInqAuthClient   WINELIB_NAME_AW(RpcBindingInqAuthClient)

Definition at line 546 of file rpcdce.h.

◆ RpcBindingInqAuthClientEx

#define RpcBindingInqAuthClientEx   WINELIB_NAME_AW(RpcBindingInqAuthClientEx)

Definition at line 557 of file rpcdce.h.

◆ RpcBindingInqAuthInfo

#define RpcBindingInqAuthInfo   WINELIB_NAME_AW(RpcBindingInqAuthInfo)

Definition at line 535 of file rpcdce.h.

◆ RpcBindingInqAuthInfoEx

#define RpcBindingInqAuthInfoEx   WINELIB_NAME_AW(RpcBindingInqAuthInfoEx)

Definition at line 526 of file rpcdce.h.

◆ RpcBindingSetAuthInfo

#define RpcBindingSetAuthInfo   WINELIB_NAME_AW(RpcBindingSetAuthInfo)

Definition at line 515 of file rpcdce.h.

◆ RpcBindingSetAuthInfoEx

#define RpcBindingSetAuthInfoEx   WINELIB_NAME_AW(RpcBindingSetAuthInfoEx)

Definition at line 506 of file rpcdce.h.

◆ RpcBindingToStringBinding

#define RpcBindingToStringBinding   WINELIB_NAME_AW(RpcBindingToStringBinding)

Definition at line 359 of file rpcdce.h.

◆ RpcEpRegister

#define RpcEpRegister   WINELIB_NAME_AW(RpcEpRegister)

Definition at line 389 of file rpcdce.h.

◆ RpcEpRegisterNoReplace

#define RpcEpRegisterNoReplace   WINELIB_NAME_AW(RpcEpRegisterNoReplace)

Definition at line 397 of file rpcdce.h.

◆ RpcNetworkInqProtseqs

#define RpcNetworkInqProtseqs   WINELIB_NAME_AW(RpcNetworkInqProtseqs)

Definition at line 575 of file rpcdce.h.

◆ RpcNetworkIsProtseqValid

#define RpcNetworkIsProtseqValid   WINELIB_NAME_AW(RpcNetworkIsProtseqValid)

Definition at line 569 of file rpcdce.h.

◆ RpcProtseqVectorFree

#define RpcProtseqVectorFree   WINELIB_NAME_AW(RpcProtseqVectorFree)

Definition at line 581 of file rpcdce.h.

◆ RpcServerInqDefaultPrincName

#define RpcServerInqDefaultPrincName   WINELIB_NAME_AW(RpcServerInqDefaultPrincName)

Definition at line 625 of file rpcdce.h.

◆ RpcServerRegisterAuthInfo

#define RpcServerRegisterAuthInfo   WINELIB_NAME_AW(RpcServerRegisterAuthInfo)

Definition at line 495 of file rpcdce.h.

◆ RpcServerUseProtseq

#define RpcServerUseProtseq   WINELIB_NAME_AW(RpcServerUseProtseq)

Definition at line 473 of file rpcdce.h.

◆ RpcServerUseProtseqEp

#define RpcServerUseProtseqEp   WINELIB_NAME_AW(RpcServerUseProtseqEp)

Definition at line 479 of file rpcdce.h.

◆ RpcServerUseProtseqEpEx

#define RpcServerUseProtseqEpEx   WINELIB_NAME_AW(RpcServerUseProtseqEpEx)

Definition at line 487 of file rpcdce.h.

◆ RpcStringBindingCompose

#define RpcStringBindingCompose   WINELIB_NAME_AW(RpcStringBindingCompose)

Definition at line 370 of file rpcdce.h.

◆ RpcStringBindingParse

#define RpcStringBindingParse   WINELIB_NAME_AW(RpcStringBindingParse)

Definition at line 378 of file rpcdce.h.

◆ RpcStringFree

#define RpcStringFree   WINELIB_NAME_AW(RpcStringFree)

Definition at line 592 of file rpcdce.h.

◆ SEC_WINNT_AUTH_IDENTITY

#define SEC_WINNT_AUTH_IDENTITY   WINELIB_NAME_AW(SEC_WINNT_AUTH_IDENTITY_)

Definition at line 297 of file rpcdce.h.

◆ SEC_WINNT_AUTH_IDENTITY_ANSI

#define SEC_WINNT_AUTH_IDENTITY_ANSI   0x1

Definition at line 309 of file rpcdce.h.

◆ SEC_WINNT_AUTH_IDENTITY_UNICODE

#define SEC_WINNT_AUTH_IDENTITY_UNICODE   0x2

Definition at line 310 of file rpcdce.h.

◆ UUID_DEFINED

#define UUID_DEFINED

Definition at line 41 of file rpcdce.h.

◆ uuid_vector_t

#define uuid_vector_t   UUID_VECTOR

Definition at line 67 of file rpcdce.h.

◆ UuidFromString

#define UuidFromString   WINELIB_NAME_AW(UuidFromString)

Definition at line 604 of file rpcdce.h.

◆ UuidToString

#define UuidToString   WINELIB_NAME_AW(UuidToString)

Definition at line 598 of file rpcdce.h.

Typedef Documentation

◆ handle_t

Definition at line 51 of file rpcdce.h.

◆ PRPC_HTTP_TRANSPORT_CREDENTIALS_A

◆ PRPC_HTTP_TRANSPORT_CREDENTIALS_W

◆ PRPC_POLICY

◆ PRPC_SECURITY_QOS

◆ PRPC_SECURITY_QOS_V2_A

◆ PRPC_SECURITY_QOS_V2_W

◆ PSEC_WINNT_AUTH_IDENTITY_A

◆ PSEC_WINNT_AUTH_IDENTITY_W

◆ RPC_AUTH_IDENTITY_HANDLE

Definition at line 47 of file rpcdce.h.

◆ RPC_AUTH_KEY_RETRIEVAL_FN

typedef void(__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN) (void *, RPC_WSTR, ULONG, void **, RPC_STATUS *)

Definition at line 212 of file rpcdce.h.

◆ RPC_AUTHZ_HANDLE

Definition at line 48 of file rpcdce.h.

◆ RPC_BINDING_HANDLE

Definition at line 50 of file rpcdce.h.

◆ RPC_BINDING_VECTOR

◆ RPC_CSTR

typedef unsigned char* RPC_CSTR

Definition at line 45 of file rpcdce.h.

◆ RPC_EP_INQ_HANDLE

Definition at line 102 of file rpcdce.h.

◆ RPC_HTTP_TRANSPORT_CREDENTIALS_A

◆ RPC_HTTP_TRANSPORT_CREDENTIALS_W

◆ RPC_IF_CALLBACK_FN

typedef RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN(RPC_IF_HANDLE InterfaceUuid, void *Context)

Definition at line 211 of file rpcdce.h.

◆ RPC_IF_HANDLE

typedef void* RPC_IF_HANDLE

Definition at line 49 of file rpcdce.h.

◆ RPC_IF_ID

◆ RPC_MGMT_AUTHORIZATION_FN

typedef int(__RPC_API * RPC_MGMT_AUTHORIZATION_FN) (RPC_BINDING_HANDLE, ULONG, RPC_STATUS *)

Definition at line 412 of file rpcdce.h.

◆ RPC_POLICY

◆ RPC_PROTSEQ_VECTORA

◆ RPC_PROTSEQ_VECTORW

◆ RPC_SECURITY_QOS

◆ RPC_SECURITY_QOS_V2_A

◆ RPC_SECURITY_QOS_V2_W

◆ RPC_WSTR

typedef unsigned short* RPC_WSTR

Definition at line 46 of file rpcdce.h.

◆ SEC_WINNT_AUTH_IDENTITY_A

◆ SEC_WINNT_AUTH_IDENTITY_W

◆ UUID

typedef GUID UUID

Definition at line 42 of file rpcdce.h.

◆ UUID_VECTOR

Function Documentation

◆ DceErrorInqTextA()

RPC_STATUS RPC_ENTRY DceErrorInqTextA ( RPC_STATUS  e,
RPC_CSTR  buffer 
)

Definition at line 698 of file rpcrt4_main.c.

699 {
701  WCHAR bufferW [MAX_RPC_ERROR_TEXT];
702  if ((status = DceErrorInqTextW (e, bufferW)) == RPC_S_OK)
703  {
704  if (!WideCharToMultiByte(CP_ACP, 0, bufferW, -1, (LPSTR)buffer, MAX_RPC_ERROR_TEXT,
705  NULL, NULL))
706  {
707  ERR ("Failed to translate error\n");
709  }
710  }
711  return status;
712 }
#define WideCharToMultiByte
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:99
#define RPC_S_INVALID_ARG
Definition: rpcnterr.h:23
GLuint buffer
Definition: glext.h:5915
char * LPSTR
Definition: xmlstorage.h:182
long RPC_STATUS
Definition: rpc.h:52
#define e
Definition: ke_i.h:82
RPC_STATUS RPC_ENTRY DceErrorInqTextW(RPC_STATUS e, RPC_WSTR buffer)
Definition: rpcrt4_main.c:675
smooth NULL
Definition: ftsmooth.c:416
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define ERR(fmt,...)
Definition: debug.h:109
static SERVICE_STATUS status
Definition: service.c:31
#define MAX_RPC_ERROR_TEXT
Definition: rpcrt4_main.c:661
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

Referenced by TestDceErrorInqText().

◆ DceErrorInqTextW()

RPC_STATUS RPC_ENTRY DceErrorInqTextW ( RPC_STATUS  e,
RPC_WSTR  buffer 
)

Definition at line 675 of file rpcrt4_main.c.

676 {
677  DWORD count;
681  if (!count)
682  {
686  if (!count)
687  {
688  ERR ("Failed to translate error\n");
689  return RPC_S_INVALID_ARG;
690  }
691  }
692  return RPC_S_OK;
693 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define RPC_S_INVALID_ARG
Definition: rpcnterr.h:23
GLuint buffer
Definition: glext.h:5915
DWORD WINAPI FormatMessageW(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, __ms_va_list *args)
Definition: format_msg.c:583
#define e
Definition: ke_i.h:82
smooth NULL
Definition: ftsmooth.c:416
#define FORMAT_MESSAGE_FROM_SYSTEM
Definition: winbase.h:404
#define RPC_S_NOT_RPC_ERROR
Definition: winerror.h:1130
unsigned long DWORD
Definition: ntddk_ex.h:95
#define ERR(fmt,...)
Definition: debug.h:109
#define FORMAT_MESSAGE_IGNORE_INSERTS
Definition: winbase.h:401
#define MAX_RPC_ERROR_TEXT
Definition: rpcrt4_main.c:661
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by DceErrorInqTextA().

◆ RpcBindingCopy()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingCopy ( RPC_BINDING_HANDLE  SourceBinding,
RPC_BINDING_HANDLE DestinationBinding 
)

Definition at line 986 of file rpc_binding.c.

989 {
990  RpcBinding *DestBinding;
991  RpcBinding *SrcBinding = SourceBinding;
993 
994  TRACE("(%p, %p)\n", SourceBinding, DestinationBinding);
995 
996  status = RPCRT4_AllocBinding(&DestBinding, SrcBinding->server);
997  if (status != RPC_S_OK) return status;
998 
999  DestBinding->ObjectUuid = SrcBinding->ObjectUuid;
1000  DestBinding->BlockingFn = SrcBinding->BlockingFn;
1001  DestBinding->Protseq = RPCRT4_strndupA(SrcBinding->Protseq, -1);
1002  DestBinding->NetworkAddr = RPCRT4_strndupA(SrcBinding->NetworkAddr, -1);
1003  DestBinding->Endpoint = RPCRT4_strndupA(SrcBinding->Endpoint, -1);
1004  DestBinding->NetworkOptions = RPCRT4_strdupW(SrcBinding->NetworkOptions);
1005  DestBinding->CookieAuth = RPCRT4_strdupW(SrcBinding->CookieAuth);
1006  if (SrcBinding->Assoc) SrcBinding->Assoc->refs++;
1007  DestBinding->Assoc = SrcBinding->Assoc;
1008 
1009  if (SrcBinding->AuthInfo) RpcAuthInfo_AddRef(SrcBinding->AuthInfo);
1010  DestBinding->AuthInfo = SrcBinding->AuthInfo;
1011  if (SrcBinding->QOS) RpcQualityOfService_AddRef(SrcBinding->QOS);
1012  DestBinding->QOS = SrcBinding->QOS;
1013 
1014  *DestinationBinding = DestBinding;
1015  return RPC_S_OK;
1016 }
struct _RpcAssoc * Assoc
Definition: rpc_binding.h:137
LPSTR Protseq
Definition: rpc_binding.h:130
static RPC_STATUS RPCRT4_AllocBinding(RpcBinding **Binding, BOOL server)
Definition: rpc_binding.c:110
long RPC_STATUS
Definition: rpc.h:52
ULONG RpcAuthInfo_AddRef(RpcAuthInfo *AuthInfo)
Definition: rpc_binding.c:1180
LPWSTR NetworkOptions
Definition: rpc_binding.h:133
RpcQualityOfService * QOS
Definition: rpc_binding.h:141
LPSTR Endpoint
Definition: rpc_binding.h:132
#define TRACE(s)
Definition: solgame.cpp:4
LPSTR RPCRT4_strndupA(LPCSTR src, INT slen)
Definition: rpc_binding.c:46
RPC_BLOCKING_FN BlockingFn
Definition: rpc_binding.h:134
LPWSTR CookieAuth
Definition: rpc_binding.h:142
UUID ObjectUuid
Definition: rpc_binding.h:129
LPSTR NetworkAddr
Definition: rpc_binding.h:131
ULONG RpcQualityOfService_AddRef(RpcQualityOfService *qos)
Definition: rpc_binding.c:1357
RpcAuthInfo * AuthInfo
Definition: rpc_binding.h:140
#define RPCRT4_strdupW(x)
Definition: rpc_binding.h:152
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

Referenced by get_epm_handle_client(), and ndr_update_context_handle().

◆ RpcBindingFree()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFree ( RPC_BINDING_HANDLE Binding)

Definition at line 784 of file rpc_binding.c.

785 {
787  TRACE("(%p) = %p\n", Binding, *Binding);
788  if (*Binding)
790  else
792  if (status == RPC_S_OK) *Binding = NULL;
793  return status;
794 }
long RPC_STATUS
Definition: rpc.h:52
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013
smooth NULL
Definition: ftsmooth.c:416
RPC_STATUS RPCRT4_ReleaseBinding(RpcBinding *Binding)
Definition: rpc_binding.c:255
#define TRACE(s)
Definition: solgame.cpp:4
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

Referenced by ATSVC_HANDLE_unbind(), BROWSER_IDENTIFY_HANDLE_unbind(), client(), ClientRpcChannelBuffer_Release(), CreateJob(), DsSetupUnbind(), epm_register(), EVENTLOG_HANDLE_A_unbind(), EVENTLOG_HANDLE_W_unbind(), get_irot_handle(), listen_test_client_thread(), LOGONSRV_HANDLE_unbind(), main(), ndr_update_context_handle(), PLSAPR_SERVER_NAME_unbind(), PnpUnbindRpc(), PREGISTRY_SERVER_NAME_unbind(), PSAMPR_SERVER_NAME_unbind(), RPC_CreateClientChannel(), RpcBindingVectorFree(), RpcEpResolveBinding(), RpcEpUnregister(), RpcSmDestroyClientContext(), RunningObjectTableImpl_Destroy(), s_context_handle_test(), ScDestroyStatusBinding(), SRVSVC_HANDLE_unbind(), SVCCTL_HANDLEA_unbind(), SVCCTL_HANDLEW_unbind(), test_endpoint_mapper(), test_ndr_buffer(), test_reconnect(), test_rpc_ncacn_ip_tcp(), test_RpcBindingFree(), test_RpcStringBindingFromBinding(), WINSPOOL_HANDLE_unbind(), WKSSVC_IDENTIFY_HANDLE_unbind(), WKSSVC_IMPERSONATE_HANDLE_unbind(), and WLANSVC_HANDLE_unbind().

◆ RpcBindingFromStringBindingA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingA ( RPC_CSTR  StringBinding,
RPC_BINDING_HANDLE Binding 
)

Definition at line 837 of file rpc_binding.c.

838 {
839  RPC_STATUS ret;
840  RpcBinding* bind = NULL;
841  RPC_CSTR ObjectUuid, Protseq, NetworkAddr, Endpoint, Options;
842  UUID Uuid;
843 
844  TRACE("(%s,%p)\n", debugstr_a((char*)StringBinding), Binding);
845 
846  ret = RpcStringBindingParseA(StringBinding, &ObjectUuid, &Protseq,
847  &NetworkAddr, &Endpoint, &Options);
848  if (ret != RPC_S_OK) return ret;
849 
850  ret = UuidFromStringA(ObjectUuid, &Uuid);
851 
852  if (ret == RPC_S_OK)
853  ret = RPCRT4_CreateBindingA(&bind, FALSE, (char*)Protseq);
854  if (ret == RPC_S_OK) {
855  ret = RPCRT4_SetBindingObject(bind, &Uuid);
856  if (ret == RPC_S_OK)
857  ret = RPCRT4_CompleteBindingA(bind, (char*)NetworkAddr, (char*)Endpoint, (char*)Options);
858 
859  if (ret == RPC_S_OK)
861  else
863  }
864 
866  RpcStringFreeA(&Endpoint);
867  RpcStringFreeA(&NetworkAddr);
868  RpcStringFreeA(&Protseq);
869  RpcStringFreeA(&ObjectUuid);
870 
871  return ret;
872 }
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
static RPC_STATUS RPCRT4_CreateBindingA(RpcBinding **Binding, BOOL server, LPCSTR Protseq)
Definition: rpc_binding.c:123
RPC_STATUS WINAPI RpcStringBindingParseA(RPC_CSTR StringBinding, RPC_CSTR *ObjUuid, RPC_CSTR *Protseq, RPC_CSTR *NetworkAddr, RPC_CSTR *Endpoint, RPC_CSTR *Options)
Definition: rpc_binding.c:565
static RPC_STATUS RPCRT4_CompleteBindingA(RpcBinding *Binding, LPCSTR NetworkAddr, LPCSTR Endpoint, LPCSTR NetworkOptions)
Definition: rpc_binding.c:149
enum OPTION_FLAGS Options
Definition: stats.c:44
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
Definition: rpcrt4_main.c:161
long RPC_STATUS
Definition: rpc.h:52
unsigned char * RPC_CSTR
Definition: rpcdce.h:45
smooth NULL
Definition: ftsmooth.c:416
RPC_STATUS RPCRT4_ReleaseBinding(RpcBinding *Binding)
Definition: rpc_binding.c:255
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
int ret
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding *Binding, const UUID *ObjectUuid)
Definition: rpc_binding.c:225
I_RPC_HANDLE RPC_BINDING_HANDLE
Definition: rpcdce.h:50
RPC_STATUS WINAPI UuidFromStringA(RPC_CSTR s, UUID *uuid)
Definition: rpcrt4_main.c:575
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by client(), EVENTLOG_HANDLE_A_bind(), get_epm_handle_server(), listen_test_client_thread(), SVCCTL_HANDLEA_bind(), test_endpoint_mapper(), test_ndr_buffer(), test_reconnect(), test_rpc_ncacn_ip_tcp(), and test_RpcStringBindingFromBinding().

◆ RpcBindingFromStringBindingW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingFromStringBindingW ( RPC_WSTR  StringBinding,
RPC_BINDING_HANDLE Binding 
)

Definition at line 877 of file rpc_binding.c.

878 {
879  RPC_STATUS ret;
880  RpcBinding* bind = NULL;
881  RPC_WSTR ObjectUuid, Protseq, NetworkAddr, Endpoint, Options;
882  UUID Uuid;
883 
884  TRACE("(%s,%p)\n", debugstr_w(StringBinding), Binding);
885 
886  ret = RpcStringBindingParseW(StringBinding, &ObjectUuid, &Protseq,
887  &NetworkAddr, &Endpoint, &Options);
888  if (ret != RPC_S_OK) return ret;
889 
890  ret = UuidFromStringW(ObjectUuid, &Uuid);
891 
892  if (ret == RPC_S_OK)
893  ret = RPCRT4_CreateBindingW(&bind, FALSE, Protseq);
894  if (ret == RPC_S_OK) {
895  ret = RPCRT4_SetBindingObject(bind, &Uuid);
896  if (ret == RPC_S_OK)
897  ret = RPCRT4_CompleteBindingW(bind, NetworkAddr, Endpoint, Options);
898 
899  if (ret == RPC_S_OK)
901  else
903  }
904 
906  RpcStringFreeW(&Endpoint);
907  RpcStringFreeW(&NetworkAddr);
908  RpcStringFreeW(&Protseq);
909  RpcStringFreeW(&ObjectUuid);
910 
911  return ret;
912 }
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:177
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
static RPC_STATUS RPCRT4_CreateBindingW(RpcBinding **Binding, BOOL server, LPCWSTR Protseq)
Definition: rpc_binding.c:136
unsigned short * RPC_WSTR
Definition: rpcdce.h:46
enum OPTION_FLAGS Options
Definition: stats.c:44
long RPC_STATUS
Definition: rpc.h:52
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
Definition: rpcrt4_main.c:615
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
RPC_STATUS RPCRT4_ReleaseBinding(RpcBinding *Binding)
Definition: rpc_binding.c:255
RPC_STATUS WINAPI RpcStringBindingParseW(RPC_WSTR StringBinding, RPC_WSTR *ObjUuid, RPC_WSTR *Protseq, RPC_WSTR *NetworkAddr, RPC_WSTR *Endpoint, RPC_WSTR *Options)
Definition: rpc_binding.c:675
#define TRACE(s)
Definition: solgame.cpp:4
int ret
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding *Binding, const UUID *ObjectUuid)
Definition: rpc_binding.c:225
I_RPC_HANDLE RPC_BINDING_HANDLE
Definition: rpcdce.h:50
static RPC_STATUS RPCRT4_CompleteBindingW(RpcBinding *Binding, LPCWSTR NetworkAddr, LPCWSTR Endpoint, LPCWSTR NetworkOptions)
Definition: rpc_binding.c:177
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by ATSVC_HANDLE_bind(), BROWSER_IDENTIFY_HANDLE_bind(), DsSetupBind(), EVENTLOG_HANDLE_W_bind(), get_irot_handle(), LOGONSRV_HANDLE_bind(), PLSAPR_SERVER_NAME_bind(), PnpBindRpc(), PREGISTRY_SERVER_NAME_bind(), PSAMPR_SERVER_NAME_bind(), RPC_CreateClientChannel(), ScCreateStatusBinding(), SRVSVC_HANDLE_bind(), SVCCTL_HANDLEW_bind(), WINSPOOL_HANDLE_bind(), WKSSVC_IDENTIFY_HANDLE_bind(), WKSSVC_IMPERSONATE_HANDLE_bind(), and WLANSVC_HANDLE_bind().

◆ RpcBindingInqAuthClientA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientA ( RPC_BINDING_HANDLE  ClientBinding,
RPC_AUTHZ_HANDLE Privs,
RPC_CSTR ServerPrincName,
ULONG AuthnLevel,
ULONG AuthnSvc,
ULONG AuthzSvc 
)

Definition at line 1569 of file rpc_binding.c.

1572 {
1573  return RpcBindingInqAuthClientExA(ClientBinding, Privs, ServerPrincName, AuthnLevel,
1574  AuthnSvc, AuthzSvc, 0);
1575 }
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExA(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc, ULONG Flags)
Definition: rpc_binding.c:1593

Referenced by s_authinfo_test().

◆ RpcBindingInqAuthClientExA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExA ( RPC_BINDING_HANDLE  ClientBinding,
RPC_AUTHZ_HANDLE Privs,
RPC_CSTR ServerPrincName,
ULONG AuthnLevel,
ULONG AuthnSvc,
ULONG AuthzSvc,
ULONG  Flags 
)

Definition at line 1593 of file rpc_binding.c.

1596 {
1598  RPC_WSTR principal;
1599 
1600  TRACE("%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1601  AuthnSvc, AuthzSvc, Flags);
1602 
1603  status = RpcBindingInqAuthClientExW(ClientBinding, Privs, ServerPrincName ? &principal : NULL,
1604  AuthnLevel, AuthnSvc, AuthzSvc, Flags);
1605  if (status == RPC_S_OK && ServerPrincName)
1606  {
1607  *ServerPrincName = (RPC_CSTR)RPCRT4_strdupWtoA(principal);
1608  if (!*ServerPrincName && principal) status = RPC_S_OUT_OF_MEMORY;
1609  RpcStringFreeW(&principal);
1610  }
1611 
1612  return status;
1613 }
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:177
unsigned short * RPC_WSTR
Definition: rpcdce.h:46
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
Definition: rpc_binding.c:59
long RPC_STATUS
Definition: rpc.h:52
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
unsigned char * RPC_CSTR
Definition: rpcdce.h:45
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExW(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc, ULONG Flags)
Definition: rpc_binding.c:1619
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

Referenced by RpcBindingInqAuthClientA(), and s_authinfo_test().

◆ RpcBindingInqAuthClientExW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExW ( RPC_BINDING_HANDLE  ClientBinding,
RPC_AUTHZ_HANDLE Privs,
RPC_WSTR ServerPrincName,
ULONG AuthnLevel,
ULONG AuthnSvc,
ULONG AuthzSvc,
ULONG  Flags 
)

Definition at line 1619 of file rpc_binding.c.

1622 {
1623  RpcBinding *bind;
1624 
1625  TRACE("%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1626  AuthnSvc, AuthzSvc, Flags);
1627 
1628  if (!ClientBinding) ClientBinding = I_RpcGetCurrentCallHandle();
1629  if (!ClientBinding) return RPC_S_INVALID_BINDING;
1630 
1631  bind = ClientBinding;
1632  if (!bind->FromConn) return RPC_S_INVALID_BINDING;
1633 
1634  return rpcrt4_conn_inquire_auth_client(bind->FromConn, Privs,
1635  ServerPrincName, AuthnLevel,
1636  AuthnSvc, AuthzSvc, Flags);
1637 }
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013
#define TRACE(s)
Definition: solgame.cpp:4
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
Definition: rpc_server.c:1746
static RPC_STATUS rpcrt4_conn_inquire_auth_client(RpcConnection *conn, RPC_AUTHZ_HANDLE *privs, RPC_WSTR *server_princ_name, ULONG *authn_level, ULONG *authn_svc, ULONG *authz_svc, ULONG flags)
Definition: rpc_binding.h:253

Referenced by RpcBindingInqAuthClientExA(), and RpcBindingInqAuthClientW().

◆ RpcBindingInqAuthClientW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientW ( RPC_BINDING_HANDLE  ClientBinding,
RPC_AUTHZ_HANDLE Privs,
RPC_WSTR ServerPrincName,
ULONG AuthnLevel,
ULONG AuthnSvc,
ULONG AuthzSvc 
)

Definition at line 1581 of file rpc_binding.c.

1584 {
1585  return RpcBindingInqAuthClientExW(ClientBinding, Privs, ServerPrincName, AuthnLevel,
1586  AuthnSvc, AuthzSvc, 0);
1587 }
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientExW(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc, ULONG Flags)
Definition: rpc_binding.c:1619

◆ RpcBindingInqAuthInfoA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoA ( RPC_BINDING_HANDLE  Binding,
RPC_CSTR ServerPrincName,
ULONG AuthnLevel,
ULONG AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
ULONG AuthzSvc 
)

Definition at line 1547 of file rpc_binding.c.

1549 {
1550  return RpcBindingInqAuthInfoExA(Binding, ServerPrincName, AuthnLevel, AuthnSvc, AuthIdentity,
1551  AuthzSvc, 0, NULL);
1552 }
smooth NULL
Definition: ftsmooth.c:416
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExA(RPC_BINDING_HANDLE Binding, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc, ULONG RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS)
Definition: rpc_binding.c:1479

Referenced by test_rpc_ncacn_ip_tcp().

◆ RpcBindingInqAuthInfoExA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExA ( RPC_BINDING_HANDLE  Binding,
RPC_CSTR ServerPrincName,
ULONG AuthnLevel,
ULONG AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
ULONG AuthzSvc,
ULONG  RpcQosVersion,
RPC_SECURITY_QOS SecurityQOS 
)

Definition at line 1479 of file rpc_binding.c.

1482 {
1484  RPC_WSTR principal;
1485 
1486  TRACE("%p %p %p %p %p %p %u %p\n", Binding, ServerPrincName, AuthnLevel,
1487  AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1488 
1489  status = RpcBindingInqAuthInfoExW(Binding, ServerPrincName ? &principal : NULL, AuthnLevel,
1490  AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1491  if (status == RPC_S_OK && ServerPrincName)
1492  {
1493  *ServerPrincName = (RPC_CSTR)RPCRT4_strdupWtoA(principal);
1494  RpcStringFreeW(&principal);
1495  if (!*ServerPrincName) return RPC_S_OUT_OF_MEMORY;
1496  }
1497 
1498  return status;
1499 }
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:177
unsigned short * RPC_WSTR
Definition: rpcdce.h:46
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
Definition: rpc_binding.c:59
long RPC_STATUS
Definition: rpc.h:52
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
unsigned char * RPC_CSTR
Definition: rpcdce.h:45
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE Binding, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc, ULONG RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS)
Definition: rpc_binding.c:1505
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

Referenced by RpcBindingInqAuthInfoA().

◆ RpcBindingInqAuthInfoExW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExW ( RPC_BINDING_HANDLE  Binding,
RPC_WSTR ServerPrincName,
ULONG AuthnLevel,
ULONG AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
ULONG AuthzSvc,
ULONG  RpcQosVersion,
RPC_SECURITY_QOS SecurityQOS 
)

Definition at line 1505 of file rpc_binding.c.

1508 {
1509  RpcBinding *bind = Binding;
1510 
1511  TRACE("%p %p %p %p %p %p %u %p\n", Binding, ServerPrincName, AuthnLevel,
1512  AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1513 
1514  if (!bind->AuthInfo) return RPC_S_BINDING_HAS_NO_AUTH;
1515 
1516  if (SecurityQOS)
1517  {
1518  FIXME("QOS not implemented\n");
1519  return RPC_S_INVALID_BINDING;
1520  }
1521 
1522  if (ServerPrincName)
1523  {
1524  if (bind->AuthInfo->server_principal_name)
1525  {
1526  *ServerPrincName = RPCRT4_strdupW(bind->AuthInfo->server_principal_name);
1527  if (!*ServerPrincName) return RPC_S_OUT_OF_MEMORY;
1528  }
1529  else *ServerPrincName = NULL;
1530  }
1531  if (AuthnLevel) *AuthnLevel = bind->AuthInfo->AuthnLevel;
1532  if (AuthnSvc) *AuthnSvc = bind->AuthInfo->AuthnSvc;
1533  if (AuthIdentity) *AuthIdentity = bind->AuthInfo->identity;
1534  if (AuthzSvc)
1535  {
1536  FIXME("authorization service not implemented\n");
1537  *AuthzSvc = RPC_C_AUTHZ_NONE;
1538  }
1539 
1540  return RPC_S_OK;
1541 }
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
static IBinding Binding
Definition: htmldoc.c:1268
#define RPC_S_BINDING_HAS_NO_AUTH
Definition: winerror.h:1054
#define RPCRT4_strdupW(x)
Definition: rpc_binding.h:152
#define RPC_C_AUTHZ_NONE
Definition: rpcdce.h:167
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by RpcBindingInqAuthInfoExA(), and RpcBindingInqAuthInfoW().

◆ RpcBindingInqAuthInfoW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoW ( RPC_BINDING_HANDLE  Binding,
RPC_WSTR ServerPrincName,
ULONG AuthnLevel,
ULONG AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
ULONG AuthzSvc 
)

Definition at line 1558 of file rpc_binding.c.

1560 {
1561  return RpcBindingInqAuthInfoExW(Binding, ServerPrincName, AuthnLevel, AuthnSvc, AuthIdentity,
1562  AuthzSvc, 0, NULL);
1563 }
smooth NULL
Definition: ftsmooth.c:416
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoExW(RPC_BINDING_HANDLE Binding, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc, ULONG RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS)
Definition: rpc_binding.c:1505

◆ RpcBindingInqObject()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqObject ( RPC_BINDING_HANDLE  Binding,
UUID ObjectUuid 
)

Definition at line 813 of file rpc_binding.c.

814 {
816 
817  TRACE("(%p,%p) = %s\n", Binding, ObjectUuid, debugstr_guid(&bind->ObjectUuid));
818  *ObjectUuid = bind->ObjectUuid;
819  return RPC_S_OK;
820 }
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
static IBinding Binding
Definition: htmldoc.c:1268
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by ClientRpcChannelBuffer_GetBuffer(), and dispatch_rpc().

◆ RpcBindingInqOption()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqOption ( RPC_BINDING_HANDLE  Binding,
ULONG  Option,
ULONG_PTR OptionValue 
)

◆ RpcBindingReset()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingReset ( RPC_BINDING_HANDLE  Binding)

Definition at line 1021 of file rpc_binding.c.

1022 {
1023  RpcBinding *bind = Binding;
1024 
1025  TRACE("(%p)\n", Binding);
1026 
1027  RPCRT4_strfree(bind->Endpoint);
1028  bind->Endpoint = NULL;
1029  if (bind->Assoc) RpcAssoc_Release(bind->Assoc);
1030  bind->Assoc = NULL;
1031 
1032  return RPC_S_OK;
1033 }
ULONG RpcAssoc_Release(RpcAssoc *assoc)
Definition: rpc_assoc.c:188
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
void RPCRT4_strfree(LPSTR src)
Definition: rpc_binding.c:105
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
static IBinding Binding
Definition: htmldoc.c:1268
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by test_endpoint_mapper().

◆ RpcBindingServerFromClient()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingServerFromClient ( RPC_BINDING_HANDLE  ClientBinding,
RPC_BINDING_HANDLE ServerBinding 
)

Definition at line 1643 of file rpc_binding.c.

1644 {
1645  RpcBinding* bind = ClientBinding;
1646  RpcBinding* NewBinding;
1647 
1648  if (!bind)
1650 
1651  if (!bind->server)
1652  return RPC_S_INVALID_BINDING;
1653 
1654  RPCRT4_AllocBinding(&NewBinding, TRUE);
1655  NewBinding->Protseq = RPCRT4_strdupA(bind->Protseq);
1656  NewBinding->NetworkAddr = RPCRT4_strdupA(bind->NetworkAddr);
1657 
1658  *ServerBinding = NewBinding;
1659 
1660  return RPC_S_OK;
1661 }
#define TRUE
Definition: types.h:120
LPSTR Protseq
Definition: rpc_binding.h:130
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
static RPC_STATUS RPCRT4_AllocBinding(RpcBinding **Binding, BOOL server)
Definition: rpc_binding.c:110
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
Definition: rpc_server.c:1746
#define RPCRT4_strdupA(x)
Definition: rpc_binding.h:151
LPSTR NetworkAddr
Definition: rpc_binding.h:131
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by CreateJob(), and s_context_handle_test().

◆ RpcBindingSetAuthInfoA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA ( RPC_BINDING_HANDLE  Binding,
RPC_CSTR  ServerPrincName,
ULONG  AuthnLevel,
ULONG  AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE  AuthIdentity,
ULONG  AuthzSvr 
)

Definition at line 1930 of file rpc_binding.c.

1932 {
1933  TRACE("%p %s %u %u %p %u\n", Binding, debugstr_a((const char*)ServerPrincName),
1934  AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1935  return RpcBindingSetAuthInfoExA(Binding, ServerPrincName, AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, NULL);
1936 }
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExA(RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr, RPC_SECURITY_QOS *SecurityQos)
Definition: rpc_binding.c:1667
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31

Referenced by test_rpc_ncacn_ip_tcp().

◆ RpcBindingSetAuthInfoExA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExA ( RPC_BINDING_HANDLE  Binding,
RPC_CSTR  ServerPrincName,
ULONG  AuthnLevel,
ULONG  AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE  AuthIdentity,
ULONG  AuthzSvr,
RPC_SECURITY_QOS SecurityQos 
)

Definition at line 1667 of file rpc_binding.c.

1671 {
1672  RpcBinding* bind = Binding;
1674  CredHandle cred;
1675  TimeStamp exp;
1676  ULONG package_count;
1677  ULONG i;
1678  PSecPkgInfoA packages;
1679  ULONG cbMaxToken;
1680 
1681  TRACE("%p %s %u %u %p %u %p\n", Binding, debugstr_a((const char*)ServerPrincName),
1682  AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1683 
1684  if (SecurityQos)
1685  {
1687 
1688  TRACE("SecurityQos { Version=%d, Capabilities=0x%x, IdentityTracking=%d, ImpersonationLevel=%d",
1689  SecurityQos->Version, SecurityQos->Capabilities, SecurityQos->IdentityTracking, SecurityQos->ImpersonationType);
1690  if (SecurityQos->Version >= 2)
1691  {
1692  const RPC_SECURITY_QOS_V2_A *SecurityQos2 = (const RPC_SECURITY_QOS_V2_A *)SecurityQos;
1693  TRACE(", AdditionalSecurityInfoType=%d", SecurityQos2->AdditionalSecurityInfoType);
1695  TRACE(", { %p, 0x%x, %d, %d, %p(%u), %s }",
1696  SecurityQos2->u.HttpCredentials->TransportCredentials,
1697  SecurityQos2->u.HttpCredentials->Flags,
1698  SecurityQos2->u.HttpCredentials->AuthenticationTarget,
1699  SecurityQos2->u.HttpCredentials->NumberOfAuthnSchemes,
1700  SecurityQos2->u.HttpCredentials->AuthnSchemes,
1701  SecurityQos2->u.HttpCredentials->AuthnSchemes ? *SecurityQos2->u.HttpCredentials->AuthnSchemes : 0,
1702  SecurityQos2->u.HttpCredentials->ServerCertificateSubject);
1703  }
1704  TRACE("}\n");
1705  status = RpcQualityOfService_Create(SecurityQos, FALSE, &bind->QOS);
1706  if (status != RPC_S_OK)
1707  return status;
1708  }
1709  else
1710  {
1711  if (bind->QOS) RpcQualityOfService_Release(bind->QOS);
1712  bind->QOS = NULL;
1713  }
1714 
1715  if (AuthnSvc == RPC_C_AUTHN_DEFAULT)
1716  AuthnSvc = RPC_C_AUTHN_WINNT;
1717 
1718  /* FIXME: the mapping should probably be retrieved using SSPI somehow */
1719  if (AuthnLevel == RPC_C_AUTHN_LEVEL_DEFAULT)
1720  AuthnLevel = RPC_C_AUTHN_LEVEL_NONE;
1721 
1722  if ((AuthnLevel == RPC_C_AUTHN_LEVEL_NONE) || (AuthnSvc == RPC_C_AUTHN_NONE))
1723  {
1724  if (bind->AuthInfo) RpcAuthInfo_Release(bind->AuthInfo);
1725  bind->AuthInfo = NULL;
1726  return RPC_S_OK;
1727  }
1728 
1729  if (AuthnLevel > RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
1730  {
1731  FIXME("unknown AuthnLevel %u\n", AuthnLevel);
1733  }
1734 
1735  /* RPC_C_AUTHN_WINNT ignores the AuthzSvr parameter */
1736  if (AuthzSvr && AuthnSvc != RPC_C_AUTHN_WINNT)
1737  {
1738  FIXME("unsupported AuthzSvr %u\n", AuthzSvr);
1740  }
1741 
1742  r = EnumerateSecurityPackagesA(&package_count, &packages);
1743  if (r != SEC_E_OK)
1744  {
1745  ERR("EnumerateSecurityPackagesA failed with error 0x%08x\n", r);
1746  return RPC_S_SEC_PKG_ERROR;
1747  }
1748 
1749  for (i = 0; i < package_count; i++)
1750  if (packages[i].wRPCID == AuthnSvc)
1751  break;
1752 
1753  if (i == package_count)
1754  {
1755  FIXME("unsupported AuthnSvc %u\n", AuthnSvc);
1756  FreeContextBuffer(packages);
1758  }
1759 
1760  TRACE("found package %s for service %u\n", packages[i].Name, AuthnSvc);
1762  AuthIdentity, NULL, NULL, &cred, &exp);
1763  cbMaxToken = packages[i].cbMaxToken;
1764  FreeContextBuffer(packages);
1765  if (r == ERROR_SUCCESS)
1766  {
1767  RpcAuthInfo *new_auth_info;
1768  r = RpcAuthInfo_Create(AuthnLevel, AuthnSvc, cred, exp, cbMaxToken,
1769  AuthIdentity, &new_auth_info);
1770  if (r == RPC_S_OK)
1771  {
1772  new_auth_info->server_principal_name = RPCRT4_strdupAtoW((char *)ServerPrincName);
1773  if (!ServerPrincName || new_auth_info->server_principal_name)
1774  {
1775  if (bind->AuthInfo) RpcAuthInfo_Release(bind->AuthInfo);
1776  bind->AuthInfo = new_auth_info;
1777  }
1778  else
1779  {
1780  RpcAuthInfo_Release(new_auth_info);
1782  }
1783  }
1784  else
1785  FreeCredentialsHandle(&cred);
1786  return r;
1787  }
1788  else
1789  {
1790  ERR("AcquireCredentialsHandleA failed with error 0x%08x\n", r);
1791  return RPC_S_SEC_PKG_ERROR;
1792  }
1793 }
SEC_WINNT_AUTH_IDENTITY_A * TransportCredentials
Definition: rpcdce.h:255
#define RPC_C_AUTHN_WINNT
Definition: rpcdce.h:158
#define SECPKG_CRED_OUTBOUND
Definition: sspi.h:277
ULONG RpcAuthInfo_Release(RpcAuthInfo *AuthInfo)
Definition: rpc_binding.c:1185
ULONG ImpersonationType
Definition: rpcdce.h:267
#define ERROR_SUCCESS
Definition: deptool.c:10
SECURITY_STATUS WINAPI FreeContextBuffer(PVOID pv)
Definition: sspi.c:699
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define RPC_C_AUTHN_LEVEL_DEFAULT
Definition: rpcdce.h:145
SECURITY_STATUS WINAPI EnumerateSecurityPackagesA(PULONG pcPackages, PSecPkgInfoA *ppPackageInfo)
Definition: sspi.c:855
SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle phCredential)
Definition: wrapper.c:151
RPC_HTTP_TRANSPORT_CREDENTIALS_A * HttpCredentials
Definition: rpcdce.h:292
#define RPC_C_AUTHN_DEFAULT
Definition: rpcdce.h:165
LPWSTR server_principal_name
Definition: rpc_binding.h:50
ULONG Capabilities
Definition: rpcdce.h:265
#define RPC_S_UNKNOWN_AUTHN_LEVEL
Definition: winerror.h:1056
ULONG RpcQualityOfService_Release(RpcQualityOfService *qos)
Definition: rpc_binding.c:1362
long RPC_STATUS
Definition: rpc.h:52
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
RPC_STATUS RpcAuthInfo_Create(ULONG AuthnLevel, ULONG AuthnSvc, CredHandle cred, TimeStamp exp, ULONG cbMaxToken, RPC_AUTH_IDENTITY_HANDLE identity, RpcAuthInfo **ret)
Definition: rpc_binding.c:1114
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_SEC_PKG_ERROR
Definition: winerror.h:1132
smooth NULL
Definition: ftsmooth.c:416
ULONG IdentityTracking
Definition: rpcdce.h:266
LONG SECURITY_STATUS
Definition: sspi.h:34
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY
Definition: rpcdce.h:151
#define TRACE(s)
Definition: solgame.cpp:4
SECURITY_STATUS WINAPI AcquireCredentialsHandleA(SEC_CHAR *pszPrincipal, SEC_CHAR *pszPackage, ULONG fCredentialsUse, PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn, PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry)
Definition: wrapper.c:59
#define debugstr_a
Definition: kernel32.h:31
LPWSTR RPCRT4_strdupAtoW(LPCSTR src)
Definition: rpc_binding.c:70
#define RPC_C_AUTHN_NONE
Definition: rpcdce.h:153
#define RPC_S_UNKNOWN_AUTHN_SERVICE
Definition: winerror.h:1055
#define SEC_E_OK
Definition: winerror.h:2356
static IBinding Binding
Definition: htmldoc.c:1268
#define ERR(fmt,...)
Definition: debug.h:109
static RPC_STATUS RpcQualityOfService_Create(const RPC_SECURITY_QOS *qos_src, BOOL unicode, RpcQualityOfService **qos_dst)
Definition: rpc_binding.c:1247
DWORD exp
Definition: msg.c:15681
unsigned char * ServerCertificateSubject
Definition: rpcdce.h:260
#define RPC_S_UNKNOWN_AUTHZ_SERVICE
Definition: winerror.h:1058
unsigned int ULONG
Definition: retypes.h:1
union _RPC_SECURITY_QOS_V2_A::@3076 u
#define RPC_C_AUTHN_INFO_TYPE_HTTP
Definition: rpcdce.h:195
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_C_AUTHN_LEVEL_NONE
Definition: rpcdce.h:146
ULONG AdditionalSecurityInfoType
Definition: rpcdce.h:289
#define RPC_S_OK
Definition: rpcnterr.h:22
ULONG cbMaxToken
Definition: sspi.h:94
Definition: ps.c:97

Referenced by RpcBindingSetAuthInfoA().

◆ RpcBindingSetAuthInfoExW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExW ( RPC_BINDING_HANDLE  Binding,
RPC_WSTR  ServerPrincName,
ULONG  AuthnLevel,
ULONG  AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE  AuthIdentity,
ULONG  AuthzSvr,
RPC_SECURITY_QOS SecurityQos 
)

Definition at line 1799 of file rpc_binding.c.

1802 {
1803  RpcBinding* bind = Binding;
1805  CredHandle cred;
1806  TimeStamp exp;
1807  ULONG package_count;
1808  ULONG i;
1809  PSecPkgInfoW packages;
1810  ULONG cbMaxToken;
1811 
1812  TRACE("%p %s %u %u %p %u %p\n", Binding, debugstr_w(ServerPrincName),
1813  AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1814 
1815  if (SecurityQos)
1816  {
1818 
1819  TRACE("SecurityQos { Version=%d, Capabilities=0x%x, IdentityTracking=%d, ImpersonationLevel=%d",
1820  SecurityQos->Version, SecurityQos->Capabilities, SecurityQos->IdentityTracking, SecurityQos->ImpersonationType);
1821  if (SecurityQos->Version >= 2)
1822  {
1823  const RPC_SECURITY_QOS_V2_W *SecurityQos2 = (const RPC_SECURITY_QOS_V2_W *)SecurityQos;
1824  TRACE(", AdditionalSecurityInfoType=%d", SecurityQos2->AdditionalSecurityInfoType);
1826  TRACE(", { %p, 0x%x, %d, %d, %p(%u), %s }",
1827  SecurityQos2->u.HttpCredentials->TransportCredentials,
1828  SecurityQos2->u.HttpCredentials->Flags,
1829  SecurityQos2->u.HttpCredentials->AuthenticationTarget,
1830  SecurityQos2->u.HttpCredentials->NumberOfAuthnSchemes,
1831  SecurityQos2->u.HttpCredentials->AuthnSchemes,
1832  SecurityQos2->u.HttpCredentials->AuthnSchemes ? *SecurityQos2->u.HttpCredentials->AuthnSchemes : 0,
1834  }
1835  TRACE("}\n");
1836  status = RpcQualityOfService_Create(SecurityQos, TRUE, &bind->QOS);
1837  if (status != RPC_S_OK)
1838  return status;
1839  }
1840  else
1841  {
1842  if (bind->QOS) RpcQualityOfService_Release(bind->QOS);
1843  bind->QOS = NULL;
1844  }
1845 
1846  if (AuthnSvc == RPC_C_AUTHN_DEFAULT)
1847  AuthnSvc = RPC_C_AUTHN_WINNT;
1848 
1849  /* FIXME: the mapping should probably be retrieved using SSPI somehow */
1850  if (AuthnLevel == RPC_C_AUTHN_LEVEL_DEFAULT)
1851  AuthnLevel = RPC_C_AUTHN_LEVEL_NONE;
1852 
1853  if ((AuthnLevel == RPC_C_AUTHN_LEVEL_NONE) || (AuthnSvc == RPC_C_AUTHN_NONE))
1854  {
1855  if (bind->AuthInfo) RpcAuthInfo_Release(bind->AuthInfo);
1856  bind->AuthInfo = NULL;
1857  return RPC_S_OK;
1858  }
1859 
1860  if (AuthnLevel > RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
1861  {
1862  FIXME("unknown AuthnLevel %u\n", AuthnLevel);
1864  }
1865 
1866  /* RPC_C_AUTHN_WINNT ignores the AuthzSvr parameter */
1867  if (AuthzSvr && AuthnSvc != RPC_C_AUTHN_WINNT)
1868  {
1869  FIXME("unsupported AuthzSvr %u\n", AuthzSvr);
1871  }
1872 
1873  r = EnumerateSecurityPackagesW(&package_count, &packages);
1874  if (r != SEC_E_OK)
1875  {
1876  ERR("EnumerateSecurityPackagesW failed with error 0x%08x\n", r);
1877  return RPC_S_SEC_PKG_ERROR;
1878  }
1879 
1880  for (i = 0; i < package_count; i++)
1881  if (packages[i].wRPCID == AuthnSvc)
1882  break;
1883 
1884  if (i == package_count)
1885  {
1886  FIXME("unsupported AuthnSvc %u\n", AuthnSvc);
1887  FreeContextBuffer(packages);
1889  }
1890 
1891  TRACE("found package %s for service %u\n", debugstr_w(packages[i].Name), AuthnSvc);
1893  AuthIdentity, NULL, NULL, &cred, &exp);
1894  cbMaxToken = packages[i].cbMaxToken;
1895  FreeContextBuffer(packages);
1896  if (r == ERROR_SUCCESS)
1897  {
1898  RpcAuthInfo *new_auth_info;
1899  r = RpcAuthInfo_Create(AuthnLevel, AuthnSvc, cred, exp, cbMaxToken,
1900  AuthIdentity, &new_auth_info);
1901  if (r == RPC_S_OK)
1902  {
1903  new_auth_info->server_principal_name = RPCRT4_strdupW(ServerPrincName);
1904  if (!ServerPrincName || new_auth_info->server_principal_name)
1905  {
1906  if (bind->AuthInfo) RpcAuthInfo_Release(bind->AuthInfo);
1907  bind->AuthInfo = new_auth_info;
1908  }
1909  else
1910  {
1911  RpcAuthInfo_Release(new_auth_info);
1913  }
1914  }
1915  else
1916  FreeCredentialsHandle(&cred);
1917  return r;
1918  }
1919  else
1920  {
1921  ERR("AcquireCredentialsHandleW failed with error 0x%08x\n", r);
1922  return RPC_S_SEC_PKG_ERROR;
1923  }
1924 }
#define RPC_C_AUTHN_WINNT
Definition: rpcdce.h:158
#define TRUE
Definition: types.h:120
#define SECPKG_CRED_OUTBOUND
Definition: sspi.h:277
SEC_WINNT_AUTH_IDENTITY_W * TransportCredentials
Definition: rpcdce.h:245
ULONG RpcAuthInfo_Release(RpcAuthInfo *AuthInfo)
Definition: rpc_binding.c:1185
ULONG ImpersonationType
Definition: rpcdce.h:267
#define ERROR_SUCCESS
Definition: deptool.c:10
SECURITY_STATUS WINAPI AcquireCredentialsHandleW(SEC_WCHAR *pszPrincipal, SEC_WCHAR *pszPackage, ULONG fCredentialsUse, PLUID pvLogonID, PVOID pAuthData, SEC_GET_KEY_FN pGetKeyFn, PVOID pvGetKeyArgument, PCredHandle phCredential, PTimeStamp ptsExpiry)
Definition: wrapper.c:105
SECURITY_STATUS WINAPI FreeContextBuffer(PVOID pv)
Definition: sspi.c:699
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define RPC_C_AUTHN_LEVEL_DEFAULT
Definition: rpcdce.h:145
SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle phCredential)
Definition: wrapper.c:151
SECURITY_STATUS WINAPI EnumerateSecurityPackagesW(PULONG pcPackages, PSecPkgInfoW *ppPackageInfo)
Definition: sspi.c:709
RPC_HTTP_TRANSPORT_CREDENTIALS_W * HttpCredentials
Definition: rpcdce.h:279
#define RPC_C_AUTHN_DEFAULT
Definition: rpcdce.h:165
LPWSTR server_principal_name
Definition: rpc_binding.h:50
ULONG Capabilities
Definition: rpcdce.h:265
unsigned short * ServerCertificateSubject
Definition: rpcdce.h:250
#define RPC_S_UNKNOWN_AUTHN_LEVEL
Definition: winerror.h:1056
ULONG RpcQualityOfService_Release(RpcQualityOfService *qos)
Definition: rpc_binding.c:1362
long RPC_STATUS
Definition: rpc.h:52
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
ULONG cbMaxToken
Definition: sspi.h:104
#define debugstr_w
Definition: kernel32.h:32
RPC_STATUS RpcAuthInfo_Create(ULONG AuthnLevel, ULONG AuthnSvc, CredHandle cred, TimeStamp exp, ULONG cbMaxToken, RPC_AUTH_IDENTITY_HANDLE identity, RpcAuthInfo **ret)
Definition: rpc_binding.c:1114
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_SEC_PKG_ERROR
Definition: winerror.h:1132
smooth NULL
Definition: ftsmooth.c:416
ULONG IdentityTracking
Definition: rpcdce.h:266
union _RPC_SECURITY_QOS_V2_W::@3075 u
LONG SECURITY_STATUS
Definition: sspi.h:34
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY
Definition: rpcdce.h:151
#define TRACE(s)
Definition: solgame.cpp:4
#define RPC_C_AUTHN_NONE
Definition: rpcdce.h:153
#define RPC_S_UNKNOWN_AUTHN_SERVICE
Definition: winerror.h:1055
#define SEC_E_OK
Definition: winerror.h:2356
static IBinding Binding
Definition: htmldoc.c:1268
#define ERR(fmt,...)
Definition: debug.h:109
static RPC_STATUS RpcQualityOfService_Create(const RPC_SECURITY_QOS *qos_src, BOOL unicode, RpcQualityOfService **qos_dst)
Definition: rpc_binding.c:1247
ULONG AdditionalSecurityInfoType
Definition: rpcdce.h:276
DWORD exp
Definition: msg.c:15681
#define RPC_S_UNKNOWN_AUTHZ_SERVICE
Definition: winerror.h:1058
unsigned int ULONG
Definition: retypes.h:1
#define RPC_C_AUTHN_INFO_TYPE_HTTP
Definition: rpcdce.h:195
#define RPCRT4_strdupW(x)
Definition: rpc_binding.h:152
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_C_AUTHN_LEVEL_NONE
Definition: rpcdce.h:146
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

Referenced by RpcBindingSetAuthInfoW().

◆ RpcBindingSetAuthInfoW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoW ( RPC_BINDING_HANDLE  Binding,
RPC_WSTR  ServerPrincName,
ULONG  AuthnLevel,
ULONG  AuthnSvc,
RPC_AUTH_IDENTITY_HANDLE  AuthIdentity,
ULONG  AuthzSvr 
)

Definition at line 1942 of file rpc_binding.c.

1944 {
1945  TRACE("%p %s %u %u %p %u\n", Binding, debugstr_w(ServerPrincName),
1946  AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1947  return RpcBindingSetAuthInfoExW(Binding, ServerPrincName, AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, NULL);
1948 }
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoExW(RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr, RPC_SECURITY_QOS *SecurityQos)
Definition: rpc_binding.c:1799
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4

◆ RpcBindingSetObject()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetObject ( RPC_BINDING_HANDLE  Binding,
UUID ObjectUuid 
)

Definition at line 825 of file rpc_binding.c.

826 {
828 
829  TRACE("(%p,%s)\n", Binding, debugstr_guid(ObjectUuid));
830  if (bind->server) return RPC_S_WRONG_KIND_OF_BINDING;
831  return RPCRT4_SetBindingObject(Binding, ObjectUuid);
832 }
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
#define RPC_S_WRONG_KIND_OF_BINDING
Definition: winerror.h:1012
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
static IBinding Binding
Definition: htmldoc.c:1268
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding *Binding, const UUID *ObjectUuid)
Definition: rpc_binding.c:225

Referenced by RPC_CreateClientChannel().

◆ RpcBindingSetOption()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetOption ( RPC_BINDING_HANDLE  Binding,
ULONG  Option,
ULONG_PTR  OptionValue 
)

Definition at line 1953 of file rpc_binding.c.

1954 {
1955  TRACE("(%p, %d, %ld)\n", BindingHandle, Option, OptionValue);
1956 
1957  switch (Option)
1958  {
1959  case RPC_C_OPT_COOKIE_AUTH:
1960  {
1962  RpcBinding *binding = BindingHandle;
1963  int len = MultiByteToWideChar(CP_ACP, 0, cookie->Buffer, cookie->BufferSize, NULL, 0);
1964  WCHAR *str;
1965 
1966  if (!(str = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR)))) return RPC_S_OUT_OF_MEMORY;
1967  MultiByteToWideChar(CP_ACP, 0, cookie->Buffer, cookie->BufferSize, str, len);
1968  str[len] = 0;
1969  HeapFree(GetProcessHeap(), 0, binding->CookieAuth);
1970  binding->CookieAuth = str;
1971  break;
1972  }
1973  default:
1974  FIXME("option %u not supported\n", Option);
1975  break;
1976  }
1977  return RPC_S_OK;
1978 }
#define RPC_C_OPT_COOKIE_AUTH
Definition: rpcdcep.h:127
#define CP_ACP
Definition: compat.h:99
_In_ ULONG _Out_ HANDLE * BindingHandle
Definition: tdikrnl.h:1146
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
#define FIXME(fmt,...)
Definition: debug.h:110
const WCHAR * str
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
GLenum GLsizei len
Definition: glext.h:6722
LPWSTR CookieAuth
Definition: rpc_binding.h:142
#define MultiByteToWideChar
Definition: compat.h:100
#define HeapFree(x, y, z)
Definition: compat.h:394
#define RPC_S_OK
Definition: rpcnterr.h:22

◆ RpcBindingToStringBindingA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingToStringBindingA ( RPC_BINDING_HANDLE  Binding,
RPC_CSTR StringBinding 
)

Definition at line 917 of file rpc_binding.c.

918 {
919  RPC_STATUS ret;
921  RPC_CSTR ObjectUuid;
922 
923  TRACE("(%p,%p)\n", Binding, StringBinding);
924 
925  if (UuidIsNil(&bind->ObjectUuid, &ret))
926  ObjectUuid = NULL;
927  else
928  {
929  ret = UuidToStringA(&bind->ObjectUuid, &ObjectUuid);
930  if (ret != RPC_S_OK) return ret;
931  }
932 
933  ret = RpcStringBindingComposeA(ObjectUuid, (unsigned char*)bind->Protseq, (unsigned char*) bind->NetworkAddr,
934  (unsigned char*) bind->Endpoint, NULL, StringBinding);
935 
936  RpcStringFreeA(&ObjectUuid);
937 
938  return ret;
939 }
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
RPC_STATUS WINAPI RpcStringBindingComposeA(RPC_CSTR ObjUuid, RPC_CSTR Protseq, RPC_CSTR NetworkAddr, RPC_CSTR Endpoint, RPC_CSTR Options, RPC_CSTR *StringBinding)
Definition: rpc_binding.c:458
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
Definition: rpcrt4_main.c:161
int WINAPI UuidIsNil(UUID *Uuid, RPC_STATUS *Status)
Definition: rpcrt4_main.c:269
long RPC_STATUS
Definition: rpc.h:52
RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, RPC_CSTR *StringUuid)
Definition: rpcrt4_main.c:515
unsigned char * RPC_CSTR
Definition: rpcdce.h:45
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
int ret
static IBinding Binding
Definition: htmldoc.c:1268
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by RpcBindingToStringBindingW(), s_context_handle_test(), test_RpcServerUseProtseq(), and test_RpcStringBindingFromBinding().

◆ RpcBindingToStringBindingW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingToStringBindingW ( RPC_BINDING_HANDLE  Binding,
RPC_WSTR StringBinding 
)

Definition at line 944 of file rpc_binding.c.

945 {
946  RPC_STATUS ret;
947  unsigned char *str = NULL;
948  TRACE("(%p,%p)\n", Binding, StringBinding);
950  *StringBinding = RPCRT4_strdupAtoW((char*)str);
952  return ret;
953 }
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
Definition: rpcrt4_main.c:161
long RPC_STATUS
Definition: rpc.h:52
const WCHAR * str
smooth NULL
Definition: ftsmooth.c:416
RPC_STATUS WINAPI RpcBindingToStringBindingA(RPC_BINDING_HANDLE Binding, RPC_CSTR *StringBinding)
Definition: rpc_binding.c:917
#define TRACE(s)
Definition: solgame.cpp:4
LPWSTR RPCRT4_strdupAtoW(LPCSTR src)
Definition: rpc_binding.c:70
int ret

Referenced by CreateJob().

◆ RpcBindingVectorFree()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingVectorFree ( RPC_BINDING_VECTOR **  BindingVector)

Definition at line 799 of file rpc_binding.c.

800 {
801  ULONG c;
802 
803  TRACE("(%p)\n", BindingVector);
804  for (c=0; c<(*BindingVector)->Count; c++) RpcBindingFree(&(*BindingVector)->BindingH[c]);
805  HeapFree(GetProcessHeap(), 0, *BindingVector);
806  *BindingVector = NULL;
807  return RPC_S_OK;
808 }
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
Definition: rpc_binding.c:784
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
const GLubyte * c
Definition: glext.h:8905
#define c
Definition: ke_i.h:80
unsigned int ULONG
Definition: retypes.h:1
#define HeapFree(x, y, z)
Definition: compat.h:394
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by test_endpoint_mapper(), and test_RpcServerUseProtseq().

◆ RpcCancelThread()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThread ( void )

Definition at line 1055 of file rpcrt4_main.c.

1056 {
1057  TRACE("(%p)\n", ThreadHandle);
1058  return RpcCancelThreadEx(ThreadHandle, 0);
1059 }
RPC_STATUS RPC_ENTRY RpcCancelThreadEx(void *ThreadHandle, LONG Timeout)
Definition: rpcrt4_main.c:1064
#define TRACE(s)
Definition: solgame.cpp:4

◆ RpcCancelThreadEx()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThreadEx ( void ,
LONG   
)

Definition at line 1064 of file rpcrt4_main.c.

1065 {
1066  DWORD target_tid;
1067 
1068  FIXME("(%p, %d)\n", ThreadHandle, Timeout);
1069 
1070  target_tid = GetThreadId(ThreadHandle);
1071  if (!target_tid)
1072  return RPC_S_INVALID_ARG;
1073 
1074  if (Timeout)
1075  {
1076  FIXME("(%p, %d)\n", ThreadHandle, Timeout);
1077  return RPC_S_OK;
1078  }
1079  else
1080  return rpc_cancel_thread(target_tid);
1081 }
#define RPC_S_INVALID_ARG
Definition: rpcnterr.h:23
DWORD WINAPI GetThreadId(IN HANDLE Thread)
Definition: thread.c:875
static RPC_STATUS rpc_cancel_thread(DWORD target_tid)
Definition: rpcrt4_main.c:1034
#define FIXME(fmt,...)
Definition: debug.h:110
unsigned long DWORD
Definition: ntddk_ex.h:95
static ULONG Timeout
Definition: ping.c:61
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by RpcCancelThread().

◆ RpcEpRegisterA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterA ( RPC_IF_HANDLE  IfSpec,
RPC_BINDING_VECTOR BindingVector,
UUID_VECTOR UuidVector,
RPC_CSTR  Annotation 
)

Definition at line 296 of file rpc_epmap.c.

298 {
299  return epm_register(IfSpec, BindingVector, UuidVector, Annotation, TRUE);
300 }
static RPC_STATUS epm_register(RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_CSTR Annotation, BOOL replace)
Definition: rpc_epmap.c:196
#define TRUE
Definition: types.h:120

Referenced by test_endpoint_mapper().

◆ RpcEpRegisterNoReplaceA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceA ( RPC_IF_HANDLE  IfSpec,
RPC_BINDING_VECTOR BindingVector,
UUID_VECTOR UuidVector,
RPC_CSTR  Annotation 
)

Definition at line 305 of file rpc_epmap.c.

307 {
308  return epm_register(IfSpec, BindingVector, UuidVector, Annotation, FALSE);
309 }
static RPC_STATUS epm_register(RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_CSTR Annotation, BOOL replace)
Definition: rpc_epmap.c:196

◆ RpcEpRegisterNoReplaceW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterNoReplaceW ( RPC_IF_HANDLE  IfSpec,
RPC_BINDING_VECTOR BindingVector,
UUID_VECTOR UuidVector,
RPC_WSTR  Annotation 
)

Definition at line 329 of file rpc_epmap.c.

331 {
332  LPSTR annA = RPCRT4_strdupWtoA(Annotation);
334 
335  status = epm_register(IfSpec, BindingVector, UuidVector, (RPC_CSTR)annA, FALSE);
336 
337  HeapFree(GetProcessHeap(), 0, annA);
338  return status;
339 }
static RPC_STATUS epm_register(RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_CSTR Annotation, BOOL replace)
Definition: rpc_epmap.c:196
char * LPSTR
Definition: xmlstorage.h:182
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
Definition: rpc_binding.c:59
long RPC_STATUS
Definition: rpc.h:52
unsigned char * RPC_CSTR
Definition: rpcdce.h:45
#define GetProcessHeap()
Definition: compat.h:395
static SERVICE_STATUS status
Definition: service.c:31
#define HeapFree(x, y, z)
Definition: compat.h:394
Definition: ps.c:97

◆ RpcEpRegisterW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpRegisterW ( RPC_IF_HANDLE  IfSpec,
RPC_BINDING_VECTOR BindingVector,
UUID_VECTOR UuidVector,
RPC_WSTR  Annotation 
)

Definition at line 314 of file rpc_epmap.c.

316 {
317  LPSTR annA = RPCRT4_strdupWtoA(Annotation);
319 
320  status = epm_register(IfSpec, BindingVector, UuidVector, (RPC_CSTR)annA, TRUE);
321 
322  HeapFree(GetProcessHeap(), 0, annA);
323  return status;
324 }
static RPC_STATUS epm_register(RPC_IF_HANDLE IfSpec, RPC_BINDING_VECTOR *BindingVector, UUID_VECTOR *UuidVector, RPC_CSTR Annotation, BOOL replace)
Definition: rpc_epmap.c:196
#define TRUE
Definition: types.h:120
char * LPSTR
Definition: xmlstorage.h:182
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
Definition: rpc_binding.c:59
long RPC_STATUS
Definition: rpc.h:52
unsigned char * RPC_CSTR
Definition: rpcdce.h:45
#define GetProcessHeap()
Definition: compat.h:395
static SERVICE_STATUS status
Definition: service.c:31
#define HeapFree(x, y, z)
Definition: compat.h:394
Definition: ps.c:97

◆ RpcEpResolveBinding()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpResolveBinding ( RPC_BINDING_HANDLE  Binding,
RPC_IF_HANDLE  IfSpec 
)

Definition at line 431 of file rpc_epmap.c.

432 {
433  PRPC_CLIENT_INTERFACE If = IfSpec;
436  error_status_t status2;
438  ept_lookup_handle_t entry_handle = NULL;
439  twr_t *tower;
440  twr_t *towers[4] = { NULL };
441  unsigned32 num_towers, i;
442  GUID uuid = GUID_NULL;
443  char *resolved_endpoint = NULL;
444 
445  TRACE("(%p,%p)\n", Binding, IfSpec);
446  TRACE(" protseq=%s\n", debugstr_a(bind->Protseq));
447  TRACE(" obj=%s\n", debugstr_guid(&bind->ObjectUuid));
448  TRACE(" networkaddr=%s\n", debugstr_a(bind->NetworkAddr));
449  TRACE(" ifid=%s\n", debugstr_guid(&If->InterfaceId.SyntaxGUID));
450 
451  /* just return for fully bound handles */
452  if (bind->Endpoint && (bind->Endpoint[0] != '\0'))
453  return RPC_S_OK;
454 
456  if (status != RPC_S_OK) return status;
457 
458  status = TowerConstruct(&If->InterfaceId, &If->TransferSyntax, bind->Protseq,
459  ((RpcBinding *)handle)->Endpoint,
460  bind->NetworkAddr, &tower);
461  if (status != RPC_S_OK)
462  {
463  WARN("couldn't get tower\n");
465  return status;
466  }
467 
468  while (TRUE)
469  {
470  __TRY
471  {
472  ept_map(handle, &uuid, tower, &entry_handle, ARRAY_SIZE(towers), &num_towers, towers, &status2);
473  /* FIXME: translate status2? */
474  }
476  {
477  status2 = GetExceptionCode();
478  }
479  __ENDTRY
480  if (status2 == RPC_S_SERVER_UNAVAILABLE &&
482  {
483  if (start_rpcss())
484  continue;
485  }
486  break;
487  };
488 
490  I_RpcFree(tower);
491 
492  if (status2 != RPC_S_OK)
493  {
494  ERR("ept_map failed for ifid %s, protseq %s, networkaddr %s\n", debugstr_guid(&If->TransferSyntax.SyntaxGUID), bind->Protseq, bind->NetworkAddr);
495  return status2;
496  }
497 
498  for (i = 0; i < num_towers; i++)
499  {
500  /* only parse the tower if we haven't already found a suitable
501  * endpoint, otherwise just free the tower */
502  if (!resolved_endpoint)
503  {
504  status = TowerExplode(towers[i], NULL, NULL, NULL, &resolved_endpoint, NULL);
505  TRACE("status = %d\n", status);
506  }
507  I_RpcFree(towers[i]);
508  }
509 
510  if (resolved_endpoint)
511  {
512  RPCRT4_ResolveBinding(Binding, resolved_endpoint);
513  I_RpcFree(resolved_endpoint);
514  return RPC_S_OK;
515  }
516 
517  WARN("couldn't find an endpoint\n");
518  return EPT_S_NOT_REGISTERED;
519 }
#define __EXCEPT(func)
Definition: exception.h:58
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
Definition: rpc_binding.c:784
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
Definition: sock.c:82
#define TRUE
Definition: types.h:120
void WINAPI I_RpcFree(void *Object)
Definition: rpcrt4_main.c:725
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
#define WARN(fmt,...)
Definition: debug.h:111
RPC_STATUS WINAPI TowerConstruct(const RPC_SYNTAX_IDENTIFIER *object, const RPC_SYNTAX_IDENTIFIER *syntax, const char *protseq, const char *endpoint, const char *address, twr_t **tower)
Definition: rpc_epmap.c:596
#define RPC_S_SERVER_UNAVAILABLE
Definition: winerror.h:1033
static RPC_STATUS get_epm_handle_client(RPC_BINDING_HANDLE handle, RPC_BINDING_HANDLE *epm_handle)
Definition: rpc_epmap.c:140
long RPC_STATUS
Definition: rpc.h:52
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
#define __TRY
Definition: compat.h:70
Definition: rpc.c:44
#define debugstr_guid
Definition: kernel32.h:35
void __cdecl ept_map(handle_t h, uuid_p_t object, twr_p_t map_tower, ept_lookup_handle_t *entry_handle, unsigned32 max_towers, unsigned32 *num_towers, twr_p_t *towers, error_status_t *status)
Definition: epmp.c:201
#define GetExceptionCode()
Definition: exception.h:65
#define TRACE(s)
Definition: solgame.cpp:4
#define debugstr_a
Definition: kernel32.h:31
static BOOL is_epm_destination_local(RPC_BINDING_HANDLE handle)
Definition: rpc_epmap.c:129
#define __ENDTRY
Definition: compat.h:72
#define GUID_NULL
Definition: ks.h:106
RPC_SYNTAX_IDENTIFIER TransferSyntax
Definition: rpcdcep.h:118
static BOOL start_rpcss(void)
Definition: rpc_epmap.c:79
static IBinding Binding
Definition: htmldoc.c:1268
#define ERR(fmt,...)
Definition: debug.h:109
RPC_STATUS RPCRT4_ResolveBinding(RpcBinding *Binding, LPCSTR Endpoint)
Definition: rpc_binding.c:205
unsigned int unsigned32
Definition: rpc.c:43
#define ARRAY_SIZE(a)
Definition: main.h:24
unsigned long error_status_t
Definition: basetyps.h:83
#define EPT_S_NOT_REGISTERED
Definition: winerror.h:1061
static LONG WINAPI rpc_filter(EXCEPTION_POINTERS *__eptr)
Definition: rpc_epmap.c:184
RPC_STATUS WINAPI TowerExplode(const twr_t *tower, PRPC_SYNTAX_IDENTIFIER object, PRPC_SYNTAX_IDENTIFIER syntax, char **protseq, char **endpoint, char **address)
Definition: rpc_epmap.c:524
Definition: msctf.idl:510
RPC_SYNTAX_IDENTIFIER InterfaceId
Definition: rpcdcep.h:117
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

Referenced by I_RpcNegotiateTransferSyntax(), and test_endpoint_mapper().

◆ RpcEpUnregister()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcEpUnregister ( RPC_IF_HANDLE  IfSpec,
RPC_BINDING_VECTOR BindingVector,
UUID_VECTOR UuidVector 
)

Definition at line 344 of file rpc_epmap.c.

346 {
347  PRPC_SERVER_INTERFACE If = IfSpec;
348  ULONG i;
350  error_status_t status2;
351  ept_entry_t *entries;
353 
354  TRACE("(%p,%p,%p)\n", IfSpec, BindingVector, UuidVector);
355  TRACE(" ifid=%s\n", debugstr_guid(&If->InterfaceId.SyntaxGUID));
356  for (i=0; i<BindingVector->Count; i++) {
357  RpcBinding* bind = BindingVector->BindingH[i];
358  TRACE(" protseq[%d]=%s\n", i, debugstr_a(bind->Protseq));
359  TRACE(" endpoint[%d]=%s\n", i, debugstr_a(bind->Endpoint));
360  }
361  if (UuidVector) {
362  for (i=0; i<UuidVector->Count; i++)
363  TRACE(" obj[%d]=%s\n", i, debugstr_guid(UuidVector->Uuid[i]));
364  }
365 
366  entries = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*entries) * BindingVector->Count * (UuidVector ? UuidVector->Count : 1));
367  if (!entries)
368  return RPC_S_OUT_OF_MEMORY;
369 
371  if (status != RPC_S_OK)
372  {
373  HeapFree(GetProcessHeap(), 0, entries);
374  return status;
375  }
376 
377  for (i = 0; i < BindingVector->Count; i++)
378  {
379  unsigned j;
380  RpcBinding* bind = BindingVector->BindingH[i];
381  for (j = 0; j < (UuidVector ? UuidVector->Count : 1); j++)
382  {
384  bind->Protseq, bind->Endpoint,
385  bind->NetworkAddr,
386  &entries[i*(UuidVector ? UuidVector->Count : 1) + j].tower);
387  if (status != RPC_S_OK) break;
388 
389  if (UuidVector)
390  memcpy(&entries[i * UuidVector->Count + j].object, &UuidVector->Uuid[j], sizeof(GUID));
391  else
392  memset(&entries[i].object, 0, sizeof(entries[i].object));
393  }
394  }
395 
396  if (status == RPC_S_OK)
397  {
398  __TRY
399  {
400  ept_insert(handle, BindingVector->Count * (UuidVector ? UuidVector->Count : 1),
401  entries, TRUE, &status2);
402  }
404  {
405  status2 = GetExceptionCode();
406  }
407  __ENDTRY
408  if (status2 == RPC_S_SERVER_UNAVAILABLE)
409  status2 = EPT_S_NOT_REGISTERED;
410  if (status2 != RPC_S_OK)
411  ERR("ept_insert failed with error %d\n", status2);
412  status = status2; /* FIXME: convert status? */
413  }
415 
416  for (i = 0; i < BindingVector->Count; i++)
417  {
418  unsigned j;
419  for (j = 0; j < (UuidVector ? UuidVector->Count : 1); j++)
420  I_RpcFree(entries[i*(UuidVector ? UuidVector->Count : 1) + j].tower);
421  }
422 
423  HeapFree(GetProcessHeap(), 0, entries);
424 
425  return status;
426 }
#define __EXCEPT(func)
Definition: exception.h:58
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
Definition: rpc_binding.c:784
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
Definition: sock.c:82
#define TRUE
Definition: types.h:120
void WINAPI I_RpcFree(void *Object)
Definition: rpcrt4_main.c:725
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
RPC_STATUS WINAPI TowerConstruct(const RPC_SYNTAX_IDENTIFIER *object, const RPC_SYNTAX_IDENTIFIER *syntax, const char *protseq, const char *endpoint, const char *address, twr_t **tower)
Definition: rpc_epmap.c:596
#define RPC_S_SERVER_UNAVAILABLE
Definition: winerror.h:1033
RPC_SYNTAX_IDENTIFIER InterfaceId
Definition: rpcdcep.h:104
long RPC_STATUS
Definition: rpc.h:52
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
#define __TRY
Definition: compat.h:70
#define debugstr_guid
Definition: kernel32.h:35
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
ULONG Count
Definition: rpcdce.h:64
#define GetExceptionCode()
Definition: exception.h:65
RPC_SYNTAX_IDENTIFIER TransferSyntax
Definition: rpcdcep.h:105
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define debugstr_a
Definition: kernel32.h:31
RPC_BINDING_HANDLE BindingH[1]
Definition: rpcdce.h:58
UUID * Uuid[1]
Definition: rpcdce.h:65
#define __ENDTRY
Definition: compat.h:72
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static RPC_STATUS get_epm_handle_server(RPC_BINDING_HANDLE *epm_handle)
Definition: rpc_epmap.c:177
#define ERR(fmt,...)
Definition: debug.h:109
unsigned long error_status_t
Definition: basetyps.h:83
#define EPT_S_NOT_REGISTERED
Definition: winerror.h:1061
#define HEAP_ZERO_MEMORY
Definition: compat.h:123
static LONG WINAPI rpc_filter(EXCEPTION_POINTERS *__eptr)
Definition: rpc_epmap.c:184
unsigned int ULONG
Definition: retypes.h:1
#define memset(x, y, z)
Definition: compat.h:39
static SERVICE_STATUS status
Definition: service.c:31
#define HeapFree(x, y, z)
Definition: compat.h:394
#define RPC_S_OK
Definition: rpcnterr.h:22
void __cdecl ept_insert(handle_t h, unsigned32 num_ents, ept_entry_t entries[], boolean32 replace, error_status_t *status)
Definition: epmp.c:92
Definition: ps.c:97

Referenced by test_endpoint_mapper().

◆ RpcImpersonateClient()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcImpersonateClient ( RPC_BINDING_HANDLE  Binding)

Definition at line 1053 of file rpc_binding.c.

1054 {
1055  RpcBinding *bind;
1056 
1057  TRACE("(%p)\n", BindingHandle);
1058 
1060  if (!BindingHandle) return RPC_S_INVALID_BINDING;
1061 
1062  bind = BindingHandle;
1063  if (bind->FromConn)
1064  return rpcrt4_conn_impersonate_client(bind->FromConn);
1066 }
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
static RPC_STATUS rpcrt4_conn_impersonate_client(RpcConnection *conn)
Definition: rpc_binding.h:241
#define RPC_S_WRONG_KIND_OF_BINDING
Definition: winerror.h:1012
_In_ ULONG _Out_ HANDLE * BindingHandle
Definition: tdikrnl.h:1146
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013
#define TRACE(s)
Definition: solgame.cpp:4
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
Definition: rpc_server.c:1746

Referenced by _RpcAddJob(), _RpcClosePrinter(), _RpcEndDocPrinter(), _RpcEndPagePrinter(), _RpcEnumJobs(), _RpcEnumMonitors(), _RpcEnumPorts(), _RpcEnumPrinters(), _RpcEnumPrintProcessorDatatypes(), _RpcEnumPrintProcessors(), _RpcGetJob(), _RpcGetPrinter(), _RpcGetPrinterDataEx(), _RpcGetPrinterDriver(), _RpcGetPrintProcessorDirectory(), _RpcOpenPrinter(), _RpcReadPrinter(), _RpcScheduleJob(), _RpcSetJob(), _RpcSetPrinterDataEx(), _RpcSpoolerInit(), _RpcStartDocPrinter(), _RpcStartPagePrinter(), _RpcWritePrinter(), LsarSetSecurityObject(), RSetServiceObjectSecurity(), and s_authinfo_test().

◆ RpcMgmtEnableIdleCleanup()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEnableIdleCleanup ( void  )

Definition at line 1614 of file rpc_server.c.

1615 {
1616  FIXME("(): stub\n");
1617  return RPC_S_OK;
1618 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_OK
Definition: rpcnterr.h:22

◆ RpcMgmtEpEltInqBegin()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtEpEltInqBegin ( RPC_BINDING_HANDLE  EpBinding,
ULONG  InquiryType,
RPC_IF_ID IfId,
ULONG  VersOption,
UUID ObjectUuid,
RPC_EP_INQ_HANDLE InquiryContext 
)

Definition at line 1696 of file rpc_server.c.

1698 {
1699  FIXME("(%p,%u,%p,%u,%p,%p): stub\n",
1700  Binding, InquiryType, IfId, VersOption, ObjectUuid, InquiryContext);
1701  return RPC_S_INVALID_BINDING;
1702 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013

◆ RpcMgmtInqIfIds()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqIfIds ( RPC_BINDING_HANDLE  Binding,
RPC_IF_ID_VECTOR **  IfIdVector 
)

Definition at line 1653 of file rpc_server.c.

1654 {
1655  FIXME("(%p,%p): stub\n", Binding, IfIdVector);
1656  return RPC_S_INVALID_BINDING;
1657 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013

◆ RpcMgmtInqStats()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtInqStats ( RPC_BINDING_HANDLE  Binding,
RPC_STATS_VECTOR **  Statistics 
)

Definition at line 1662 of file rpc_server.c.

1663 {
1664  RPC_STATS_VECTOR *stats;
1665 
1666  FIXME("(%p,%p)\n", Binding, Statistics);
1667 
1668  if ((stats = HeapAlloc(GetProcessHeap(), 0, sizeof(RPC_STATS_VECTOR))))
1669  {
1670  stats->Count = 1;
1671  stats->Stats[0] = 0;
1672  *Statistics = stats;
1673  return RPC_S_OK;
1674  }
1675  return RPC_S_OUT_OF_RESOURCES;
1676 }
unsigned int Count
Definition: rpcdce.h:84
#define FIXME(fmt,...)
Definition: debug.h:110
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
#define RPC_S_OUT_OF_RESOURCES
Definition: winerror.h:1032
ULONG Stats[1]
Definition: rpcdce.h:85
#define RPC_S_OK
Definition: rpcnterr.h:22

◆ RpcMgmtIsServerListening()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtIsServerListening ( RPC_BINDING_HANDLE  Binding)

Definition at line 1707 of file rpc_server.c.

1708 {
1710 
1711  TRACE("(%p)\n", Binding);
1712 
1713  if (Binding) {
1714  RpcBinding *rpc_binding = (RpcBinding*)Binding;
1715  status = RPCRT4_IsServerListening(rpc_binding->Protseq, rpc_binding->Endpoint);
1716  }else {
1720  }
1721 
1722  return status;
1723 }
LPSTR Protseq
Definition: rpc_binding.h:130
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
long RPC_STATUS
Definition: rpc.h:52
LPSTR Endpoint
Definition: rpc_binding.h:132
#define RPC_S_NOT_LISTENING
Definition: winerror.h:1026
RPC_STATUS RPCRT4_IsServerListening(const char *protseq, const char *endpoint) DECLSPEC_HIDDEN
#define TRACE(s)
Definition: solgame.cpp:4
static CRITICAL_SECTION listen_cs
Definition: rpc_server.c:84
static HANDLE listen_done_event
Definition: rpc_server.c:107
static BOOL std_listen
Definition: rpc_server.c:103
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

Referenced by _test_is_server_listening(), and _test_is_server_listening2().

◆ RpcMgmtSetAuthorizationFn()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetAuthorizationFn ( RPC_MGMT_AUTHORIZATION_FN  )

Definition at line 1728 of file rpc_server.c.

1729 {
1730  FIXME("(%p): stub\n", fn);
1731  return RPC_S_OK;
1732 }
static GLenum _GLUfuncptr fn
Definition: wgl_font.c:159
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_OK
Definition: rpcnterr.h:22

◆ RpcMgmtSetCancelTimeout()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetCancelTimeout ( LONG  )

Definition at line 927 of file rpcrt4_main.c.

928 {
929  FIXME("(%d): stub\n", Timeout);
930  return RPC_S_OK;
931 }
#define FIXME(fmt,...)
Definition: debug.h:110
static ULONG Timeout
Definition: ping.c:61
#define RPC_S_OK
Definition: rpcnterr.h:22

◆ RpcMgmtSetComTimeout()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetComTimeout ( RPC_BINDING_HANDLE  Binding,
unsigned int  Timeout 
)

Definition at line 1469 of file rpc_binding.c.

1470 {
1471  FIXME("(%p, %d): stub\n", BindingHandle, Timeout);
1472  return RPC_S_OK;
1473 }
_In_ ULONG _Out_ HANDLE * BindingHandle
Definition: tdikrnl.h:1146
#define FIXME(fmt,...)
Definition: debug.h:110
static ULONG Timeout
Definition: ping.c:61
#define RPC_S_OK
Definition: rpcnterr.h:22

◆ RpcMgmtSetServerStackSize()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtSetServerStackSize ( ULONG  ThreadStackSize)

Definition at line 1737 of file rpc_server.c.

1738 {
1739  FIXME("(0x%x): stub\n", ThreadStackSize);
1740  return RPC_S_OK;
1741 }
#define FIXME(fmt,...)
Definition: debug.h:110
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by CallPerInstanceInitFunctions().

◆ RpcMgmtStatsVectorFree()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtStatsVectorFree ( RPC_STATS_VECTOR **  StatsVector)

Definition at line 1681 of file rpc_server.c.

1682 {
1683  FIXME("(%p)\n", StatsVector);
1684 
1685  if (StatsVector)
1686  {
1687  HeapFree(GetProcessHeap(), 0, *StatsVector);
1688  *StatsVector = NULL;
1689  }
1690  return RPC_S_OK;
1691 }
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
#define GetProcessHeap()
Definition: compat.h:395
#define HeapFree(x, y, z)
Definition: compat.h:394
#define RPC_S_OK
Definition: rpcnterr.h:22

◆ RpcMgmtStopServerListening()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtStopServerListening ( RPC_BINDING_HANDLE  Binding)

Definition at line 1599 of file rpc_server.c.

1600 {
1601  TRACE("(Binding == (RPC_BINDING_HANDLE)^%p)\n", Binding);
1602 
1603  if (Binding) {
1604  FIXME("client-side invocation not implemented.\n");
1606  }
1607 
1608  return RPCRT4_stop_listen(FALSE);
1609 }
#define RPC_S_WRONG_KIND_OF_BINDING
Definition: winerror.h:1012
#define FIXME(fmt,...)
Definition: debug.h:110
#define TRACE(s)
Definition: solgame.cpp:4
static RPC_STATUS RPCRT4_stop_listen(BOOL auto_listen)
Definition: rpc_server.c:786

Referenced by _ServiceControlHandlerEx(), RpcpStopRpcServer(), RpcpStopRpcServerEx(), s_stop(), SamrShutdownSamServer(), service_handler(), ServiceControlHandler(), test_rpc_ncacn_ip_tcp(), test_server_listening(), and test_stop_wait_for_call().

◆ RpcMgmtWaitServerListen()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtWaitServerListen ( void  )

Definition at line 1546 of file rpc_server.c.

1547 {
1548  RpcServerProtseq *protseq;
1549  HANDLE event, wait_thread;
1550 
1551  TRACE("()\n");
1552 
1554  event = listen_done_event;
1556 
1557  if (!event)
1558  return RPC_S_NOT_LISTENING;
1559 
1560  TRACE( "waiting for server calls to finish\n" );
1562  TRACE( "done waiting\n" );
1563 
1565  /* wait for server threads to finish */
1566  while(1)
1567  {
1568  if (listen_count)
1569  break;
1570 
1571  wait_thread = NULL;
1574  {
1575  if ((wait_thread = protseq->server_thread))
1576  break;
1577  }
1579  if (!wait_thread)
1580  break;
1581 
1582  TRACE("waiting for thread %u\n", GetThreadId(wait_thread));
1584  WaitForSingleObject(wait_thread, INFINITE);
1586  }
1587  if (listen_done_event == event)
1588  {
1590  CloseHandle( event );
1591  }
1593  return RPC_S_OK;
1594 }
static struct list protseqs
Definition: rpc_server.c:71
#define CloseHandle
Definition: compat.h:398
uint8_t entry
Definition: isohybrid.c:63
DWORD WINAPI GetThreadId(IN HANDLE Thread)
Definition: thread.c:875
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static CRITICAL_SECTION server_cs
Definition: rpc_server.c:75
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
Definition: synch.c:82
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
smooth NULL
Definition: ftsmooth.c:416
#define RPC_S_NOT_LISTENING
Definition: winerror.h:1026
#define TRACE(s)
Definition: solgame.cpp:4
HANDLE server_thread
Definition: rpc_server.h:41
static LONG listen_count
Definition: rpc_server.c:105
static CRITICAL_SECTION listen_cs
Definition: rpc_server.c:84
struct _cl_event * event
Definition: glext.h:7739
static HANDLE listen_done_event
Definition: rpc_server.c:107
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define INFINITE
Definition: serial.h:102
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by RpcpStopRpcServer(), RpcpStopRpcServerEx(), RpcServerListen(), run_server(), server(), test_rpc_ncacn_ip_tcp(), test_server_listening(), and wait_listen_proc().

◆ RpcNetworkInqProtseqsA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsA ( RPC_PROTSEQ_VECTORA **  protseqs)

Definition at line 3703 of file rpc_transport.c.

3704 {
3705  RPC_PROTSEQ_VECTORA *pvector;
3706  unsigned int i;
3708 
3709  TRACE("(%p)\n", protseqs);
3710 
3711  *protseqs = HeapAlloc(GetProcessHeap(), 0, sizeof(RPC_PROTSEQ_VECTORW)+(sizeof(unsigned char*)*ARRAY_SIZE(protseq_list)));
3712  if (!*protseqs)
3713  goto end;
3714  pvector = *protseqs;
3715  pvector->Count = 0;
3716  for (i = 0; i < ARRAY_SIZE(protseq_list); i++)
3717  {
3718  pvector->Protseq[i] = HeapAlloc(GetProcessHeap(), 0, strlen(protseq_list[i].name)+1);
3719  if (pvector->Protseq[i] == NULL)
3720  goto end;
3721  strcpy((char*)pvector->Protseq[i], protseq_list[i].name);
3722  pvector->Count++;
3723  }
3724  status = RPC_S_OK;
3725 
3726 end:
3727  if (status != RPC_S_OK)
3729  return status;
3730 }
static struct list protseqs
Definition: rpc_server.c:71
unsigned char * Protseq[1]
Definition: rpcdce.h:91
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
unsigned int Count
Definition: rpcdce.h:90
GLuint GLuint end
Definition: gl.h:1545
static const struct protseq_ops protseq_list[]
long RPC_STATUS
Definition: rpc.h:52
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
RPC_STATUS WINAPI RpcProtseqVectorFreeA(RPC_PROTSEQ_VECTORA **protseqs)
#define ARRAY_SIZE(a)
Definition: main.h:24
Definition: name.c:36
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

◆ RpcNetworkInqProtseqsW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkInqProtseqsW ( RPC_PROTSEQ_VECTORW **  protseqs)

Definition at line 3670 of file rpc_transport.c.

3671 {
3672  RPC_PROTSEQ_VECTORW *pvector;
3673  unsigned int i;
3675 
3676  TRACE("(%p)\n", protseqs);
3677 
3678  *protseqs = HeapAlloc(GetProcessHeap(), 0, sizeof(RPC_PROTSEQ_VECTORW)+(sizeof(unsigned short*)*ARRAY_SIZE(protseq_list)));
3679  if (!*protseqs)
3680  goto end;
3681  pvector = *protseqs;
3682  pvector->Count = 0;
3683  for (i = 0; i < ARRAY_SIZE(protseq_list); i++)
3684  {
3685  pvector->Protseq[i] = HeapAlloc(GetProcessHeap(), 0, (strlen(protseq_list[i].name)+1)*sizeof(unsigned short));
3686  if (pvector->Protseq[i] == NULL)
3687  goto end;
3689  (WCHAR*)pvector->Protseq[i], strlen(protseq_list[i].name) + 1);
3690  pvector->Count++;
3691  }
3692  status = RPC_S_OK;
3693 
3694 end:
3695  if (status != RPC_S_OK)
3697  return status;
3698 }
static struct list protseqs
Definition: rpc_server.c:71
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define CP_ACP
Definition: compat.h:99
char CHAR
Definition: xmlstorage.h:175
unsigned int Count
Definition: rpcdce.h:96
GLuint GLuint end
Definition: gl.h:1545
static const struct protseq_ops protseq_list[]
long RPC_STATUS
Definition: rpc.h:52
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
RPC_STATUS WINAPI RpcProtseqVectorFreeW(RPC_PROTSEQ_VECTORW **protseqs)
smooth NULL
Definition: ftsmooth.c:416
unsigned short * Protseq[1]
Definition: rpcdce.h:97
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define ARRAY_SIZE(a)
Definition: main.h:24
#define MultiByteToWideChar
Definition: compat.h:100
Definition: name.c:36
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

◆ RpcNetworkIsProtseqValidA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidA ( RPC_CSTR  protseq)

Definition at line 3618 of file rpc_transport.c.

3619 {
3620  UNICODE_STRING protseqW;
3621 
3622  if (RtlCreateUnicodeStringFromAsciiz(&protseqW, (char*)protseq))
3623  {
3625  RtlFreeUnicodeString(&protseqW);
3626  return ret;
3627  }
3628  return RPC_S_OUT_OF_MEMORY;
3629 }
long RPC_STATUS
Definition: rpc.h:52
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
int ret
RPC_STATUS WINAPI RpcNetworkIsProtseqValidW(RPC_WSTR protseq)

Referenced by test_rpc_ncacn_ip_tcp().

◆ RpcNetworkIsProtseqValidW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcNetworkIsProtseqValidW ( RPC_WSTR  protseq)

Definition at line 3601 of file rpc_transport.c.

3602 {
3603  char ps[0x10];
3604 
3605  WideCharToMultiByte(CP_ACP, 0, protseq, -1,
3606  ps, sizeof ps, NULL, NULL);
3608  return RPC_S_OK;
3609 
3610  FIXME("Unknown protseq %s\n", debugstr_w(protseq));
3611 
3613 }
#define WideCharToMultiByte
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:99
static const struct connection_ops * rpcrt4_get_conn_protseq_ops(const char *protseq)
#define debugstr_w
Definition: kernel32.h:32
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
#define RPC_S_INVALID_RPC_PROTSEQ
Definition: winerror.h:1015
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by RpcNetworkIsProtseqValidA().

◆ RpcObjectSetType()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcObjectSetType ( UUID ObjUuid,
UUID TypeUuid 
)

Definition at line 1288 of file rpc_server.c.

1289 {
1290  RpcObjTypeMap *map = RpcObjTypeMaps, *prev = NULL;
1291  RPC_STATUS dummy;
1292 
1293  TRACE("(ObjUUID == %s, TypeUuid == %s).\n", debugstr_guid(ObjUuid), debugstr_guid(TypeUuid));
1294  if ((! ObjUuid) || UuidIsNil(ObjUuid, &dummy)) {
1295  /* nil uuid cannot be remapped */
1296  return RPC_S_INVALID_OBJECT;
1297  }
1298 
1299  /* find the mapping for this object if there is one ... */
1300  while (map) {
1301  if (! UuidCompare(ObjUuid, &map->Object, &dummy)) break;
1302  prev = map;
1303  map = map->next;
1304  }
1305  if ((! TypeUuid) || UuidIsNil(TypeUuid, &dummy)) {
1306  /* ... and drop it from the list */
1307  if (map) {
1308  if (prev)
1309  prev->next = map->next;
1310  else
1311  RpcObjTypeMaps = map->next;
1312  HeapFree(GetProcessHeap(), 0, map);
1313  }
1314  } else {
1315  /* ... , fail if we found it ... */
1316  if (map)
1317  return RPC_S_ALREADY_REGISTERED;
1318  /* ... otherwise create a new one and add it in. */
1319  map = HeapAlloc(GetProcessHeap(), 0, sizeof(RpcObjTypeMap));
1320  map->Object = *ObjUuid;
1321  map->Type = *TypeUuid;
1322  map->next = NULL;
1323  if (prev)
1324  prev->next = map; /* prev is the last map in the linklist */
1325  else
1326  RpcObjTypeMaps = map;
1327  }
1328 
1329  return RPC_S_OK;
1330 }
int WINAPI UuidCompare(UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status)
Definition: rpcrt4_main.c:210
int WINAPI UuidIsNil(UUID *Uuid, RPC_STATUS *Status)
Definition: rpcrt4_main.c:269
long RPC_STATUS
Definition: rpc.h:52
#define RPC_S_INVALID_OBJECT
Definition: winerror.h:1142
smooth NULL
Definition: ftsmooth.c:416
#define debugstr_guid
Definition: kernel32.h:35
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
Definition: _map.h:44
unsigned char dummy
Definition: maze.c:118
#define HeapFree(x, y, z)
Definition: compat.h:394
#define RPC_S_ALREADY_REGISTERED
Definition: winerror.h:1022
#define RPC_S_OK
Definition: rpcnterr.h:22
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum map
Definition: glfuncs.h:262
static RpcObjTypeMap * RpcObjTypeMaps
Definition: rpc_server.c:68

◆ RpcProtseqVectorFreeA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeA ( RPC_PROTSEQ_VECTORA **  protseqs)

Definition at line 3634 of file rpc_transport.c.

3635 {
3636  TRACE("(%p)\n", protseqs);
3637 
3638  if (*protseqs)
3639  {
3640  unsigned int i;
3641  for (i = 0; i < (*protseqs)->Count; i++)
3642  HeapFree(GetProcessHeap(), 0, (*protseqs)->Protseq[i]);
3644  *protseqs = NULL;
3645  }
3646  return RPC_S_OK;
3647 }
static struct list protseqs
Definition: rpc_server.c:71
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
#define HeapFree(x, y, z)
Definition: compat.h:394
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by RpcNetworkInqProtseqsA().

◆ RpcProtseqVectorFreeW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeW ( RPC_PROTSEQ_VECTORW **  protseqs)

Definition at line 3652 of file rpc_transport.c.

3653 {
3654  TRACE("(%p)\n", protseqs);
3655 
3656  if (*protseqs)
3657  {
3658  unsigned int i;
3659  for (i = 0; i < (*protseqs)->Count; i++)
3660  HeapFree(GetProcessHeap(), 0, (*protseqs)->Protseq[i]);
3662  *protseqs = NULL;
3663  }
3664  return RPC_S_OK;
3665 }
static struct list protseqs
Definition: rpc_server.c:71
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
#define HeapFree(x, y, z)
Definition: compat.h:394
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by RpcNetworkInqProtseqsW().

◆ RpcRaiseException()

RPCRTAPI DECLSPEC_NORETURN void RPC_ENTRY RpcRaiseException ( RPC_STATUS  exception)

Definition at line 189 of file rpcrt4_main.c.

190 {
191  /* shouldn't return */
192  RaiseException(exception, 0, 0, NULL);
193  ERR("handler continued execution\n");
194  ExitProcess(1);
195 }
VOID WINAPI ExitProcess(IN UINT uExitCode)
Definition: proc.c:1517
smooth NULL
Definition: ftsmooth.c:416
#define ERR(fmt,...)
Definition: debug.h:109
VOID WINAPI RaiseException(IN DWORD dwExceptionCode, IN DWORD dwExceptionFlags, IN DWORD nNumberOfArguments, IN CONST ULONG_PTR *lpArguments OPTIONAL)
Definition: except.c:693

Referenced by array_buffer_size(), array_compute_and_size_conformance(), array_compute_and_write_conformance(), array_free(), array_memory_size(), array_read_conformance(), array_read_variance_and_unmarshall(), array_write_variance_and_marshall(), call_buffer_sizer(), call_marshaller(), call_unmarshaller(), client_do_args(), client_free_handle(), client_get_handle(), ComplexMarshall(), ComplexUnmarshall(), convert_old_args(), CtxClose(), CtxHello(), CtxOpen(), dispatch_rpc(), EmbeddedComplexSize(), es_data_alloc(), es_data_read(), get_arm_offset_from_union_arm_selector(), hello_CtxClose(), hello_CtxHello(), hello_CtxOpen(), HMETAFILEPICT_UserUnmarshal(), LPSAFEARRAY_UserMarshal(), LPSAFEARRAY_UserSize(), LPSAFEARRAY_UserUnmarshal(), m_CtxClose(), m_CtxHello(), m_CtxOpen(), mes_proc_header_unmarshal(), ndr_async_client_call(), ndr_client_call(), NdrAllocate(), NdrBaseTypeMarshall(), NDRCContextBinding(), NDRCContextUnmarshall(), NdrClientContextMarshall(), NdrClientContextUnmarshall(), NdrComplexArrayBufferSize(), NdrComplexArrayFree(), NdrComplexArrayMarshall(), NdrComplexArrayMemorySize(), NdrComplexArrayUnmarshall(), NdrConformantArrayBufferSize(), NdrConformantArrayFree(), NdrConformantArrayMarshall(), NdrConformantArrayMemorySize(), NdrConformantArrayUnmarshall(), NdrConformantStringBufferSize(), NdrConformantStringMarshall(), NdrConformantStringMemorySize(), NdrConformantStringUnmarshall(), NdrConformantStructBufferSize(), NdrConformantStructFree(), NdrConformantStructMarshall(), NdrConformantStructUnmarshall(), NdrConformantVaryingArrayBufferSize(), NdrConformantVaryingArrayFree(), NdrConformantVaryingArrayMarshall(), NdrConformantVaryingArrayMemorySize(), NdrConformantVaryingArrayUnmarshall(), NdrConformantVaryingStructBufferSize(), NdrConformantVaryingStructFree(), NdrConformantVaryingStructMarshall(), NdrConformantVaryingStructMemorySize(), NdrConformantVaryingStructUnmarshall(), NdrContextHandleBufferSize(), NdrContextHandleMarshall(), NdrContextHandleUnmarshall(), NdrFixedArrayBufferSize(), NdrFixedArrayFree(), NdrFixedArrayMarshall(), NdrFixedArrayMemorySize(), NdrFixedArrayUnmarshall(), NdrGetBuffer(), NdrInterfacePointerMarshall(), NdrInterfacePointerUnmarshall(), NdrMesProcEncodeDecode(), NdrNonConformantStringBufferSize(), NdrNonConformantStringMarshall(), NdrNonConformantStringMemorySize(), NdrNonConformantStringUnmarshall(), NdrPointerUnmarshall(), NdrProxyGetBuffer(), NdrProxySendReceive(), NdrRangeBufferSize(), NdrRangeMarshall(), NdrRangeMemorySize(), NdrRangeUnmarshall(), NDRSContextMarshall2(), NDRSContextUnmarshall2(), NdrSendReceive(), NdrServerContextMarshall(), NdrServerContextNewMarshall(), NdrServerContextNewUnmarshall(), NdrServerContextUnmarshall(), NdrStubCall2(), NdrStubForwardingFunction(), NdrStubGetBuffer(), NdrVaryingArrayBufferSize(), NdrVaryingArrayFree(), NdrVaryingArrayMarshall(), NdrVaryingArrayMemorySize(), NdrVaryingArrayUnmarshall(), PointerBufferSize(), PointerMarshall(), PointerMemorySize(), PointerUnmarshall(), ReadConformance(), ReadVariance(), RpcSsDestroyClientContext(), safe_buffer_increment(), safe_buffer_length_increment(), safe_copy_from_buffer(), safe_copy_to_buffer(), safe_multiply(), SAFEARRAY_GetUnionType(), SizeConformance(), SizeVariance(), STGMEDIUM_UserUnmarshal(), stub_do_args(), type_stack_size(), union_arm_marshall(), union_arm_unmarshall(), validate_string_data(), WriteConformance(), and WriteVariance().

◆ RpcRevertToSelf()

◆ RpcRevertToSelfEx()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcRevertToSelfEx ( RPC_BINDING_HANDLE  Binding)

Definition at line 1086 of file rpc_binding.c.

1087 {
1088  RpcBinding *bind;
1089 
1090  TRACE("(%p)\n", BindingHandle);
1091 
1093  if (!BindingHandle) return RPC_S_INVALID_BINDING;
1094 
1095  bind = BindingHandle;
1096  if (bind->FromConn)
1097  return rpcrt4_conn_revert_to_self(bind->FromConn);
1099 }
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
Definition: socklife.c:36
#define RPC_S_WRONG_KIND_OF_BINDING
Definition: winerror.h:1012
_In_ ULONG _Out_ HANDLE * BindingHandle
Definition: tdikrnl.h:1146
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013
static RPC_STATUS rpcrt4_conn_revert_to_self(RpcConnection *conn)
Definition: rpc_binding.h:247
#define TRACE(s)
Definition: solgame.cpp:4
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
Definition: rpc_server.c:1746

Referenced by RpcRevertToSelf().

◆ RpcServerInqBindings()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqBindings ( RPC_BINDING_VECTOR **  BindingVector)

Definition at line 868 of file rpc_server.c.

869 {
871  DWORD count;
872  RpcServerProtseq* ps;
873  RpcConnection* conn;
874 
875  if (BindingVector)
876  TRACE("(*BindingVector == ^%p)\n", *BindingVector);
877  else
878  ERR("(BindingVector == NULL!!?)\n");
879 
881  /* count connections */
882  count = 0;
884  EnterCriticalSection(&ps->cs);
885  LIST_FOR_EACH_ENTRY(conn, &ps->listeners, RpcConnection, protseq_entry)
886  count++;
887  LeaveCriticalSection(&ps->cs);
888  }
889  if (count) {
890  /* export bindings */
891  *BindingVector = HeapAlloc(GetProcessHeap(), 0,
892  sizeof(RPC_BINDING_VECTOR) +
893  sizeof(RPC_BINDING_HANDLE)*(count-1));
894  (*BindingVector)->Count = count;
895  count = 0;
897  EnterCriticalSection(&ps->cs);
898  LIST_FOR_EACH_ENTRY(conn, &ps->listeners, RpcConnection, protseq_entry) {
899  RPCRT4_MakeBinding((RpcBinding**)&(*BindingVector)->BindingH[count],
900  conn);
901  count++;
902  }
903  LeaveCriticalSection(&ps->cs);
904  }
905  status = RPC_S_OK;
906  } else {
907  *BindingVector = NULL;
909  }
911  return status;
912 }
static struct list protseqs
Definition: rpc_server.c:71
struct list listeners
Definition: rpc_server.h:36
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define RPC_S_NO_BINDINGS
Definition: winerror.h:1029
uint8_t entry
Definition: isohybrid.c:63
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static CRITICAL_SECTION server_cs
Definition: rpc_server.c:75
long RPC_STATUS
Definition: rpc.h:52
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
smooth NULL
Definition: ftsmooth.c:416
CRITICAL_SECTION cs
Definition: rpc_server.h:38
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:395
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
unsigned long DWORD
Definition: ntddk_ex.h:95
RPC_STATUS RPCRT4_MakeBinding(RpcBinding **Binding, RpcConnection *Connection)
Definition: rpc_binding.c:233
#define ERR(fmt,...)
Definition: debug.h:109
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
static SERVICE_STATUS status
Definition: service.c:31
#define RPC_S_OK
Definition: rpcnterr.h:22
Definition: ps.c:97

Referenced by test_endpoint_mapper(), and test_RpcServerUseProtseq().

◆ RpcServerInqDefaultPrincNameA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameA ( ULONG  AuthnSvc,
RPC_CSTR PrincName 
)

Definition at line 1488 of file rpc_server.c.

1489 {
1490  RPC_STATUS ret;
1491  RPC_WSTR principalW;
1492 
1493  TRACE("%u, %p\n", AuthnSvc, PrincName);
1494 
1495  if ((ret = RpcServerInqDefaultPrincNameW( AuthnSvc, &principalW )) == RPC_S_OK)
1496  {
1497  if (!(*PrincName = (RPC_CSTR)RPCRT4_strdupWtoA( principalW ))) return RPC_S_OUT_OF_MEMORY;
1498  RpcStringFreeW( &principalW );
1499  }
1500  return ret;
1501 }
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:177
unsigned short * RPC_WSTR
Definition: rpcdce.h:46
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
Definition: rpc_binding.c:59
long RPC_STATUS
Definition: rpc.h:52
#define RPC_S_OUT_OF_MEMORY
Definition: rpcnterr.h:24
unsigned char * RPC_CSTR
Definition: rpcdce.h:45
#define TRACE(s)
Definition: solgame.cpp:4
int ret
RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameW(ULONG AuthnSvc, RPC_WSTR *PrincName)
Definition: rpc_server.c:1506
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by test_RpcServerInqDefaultPrincName().

◆ RpcServerInqDefaultPrincNameW()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameW ( ULONG  AuthnSvc,
RPC_WSTR PrincName 
)

Definition at line 1506 of file rpc_server.c.

1507 {
1508  ULONG len = 0;
1509 
1510  FIXME("%u, %p\n", AuthnSvc, PrincName);
1511 
1512  if (AuthnSvc != RPC_C_AUTHN_WINNT) return RPC_S_UNKNOWN_AUTHN_SERVICE;
1513 
1514  GetUserNameExW( NameSamCompatible, NULL, &len );
1516 
1517  if (!(*PrincName = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) )))
1518  return RPC_S_OUT_OF_MEMORY;
1519 
1520  GetUserNameExW( NameSamCompatible, *PrincName, &len );
1521  return RPC_S_OK;
1522 }
#define RPC_C_AUTHN_WINNT
Definition: rpcdce.h:158
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059