ReactOS  0.4.14-dev-614-gbfd8a84
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

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

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 695 of file rpcrt4_main.c.

696 {
698  WCHAR bufferW [MAX_RPC_ERROR_TEXT];
699  if ((status = DceErrorInqTextW (e, bufferW)) == RPC_S_OK)
700  {
701  if (!WideCharToMultiByte(CP_ACP, 0, bufferW, -1, (LPSTR)buffer, MAX_RPC_ERROR_TEXT,
702  NULL, NULL))
703  {
704  ERR ("Failed to translate error\n");
706  }
707  }
708  return status;
709 }
#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:672
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:658
#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 672 of file rpcrt4_main.c.

673 {
674  DWORD count;
678  if (!count)
679  {
683  if (!count)
684  {
685  ERR ("Failed to translate error\n");
686  return RPC_S_INVALID_ARG;
687  }
688  }
689  return RPC_S_OK;
690 }
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:658
#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 985 of file rpc_binding.c.

988 {
989  RpcBinding *DestBinding;
990  RpcBinding *SrcBinding = SourceBinding;
992 
993  TRACE("(%p, %p)\n", SourceBinding, DestinationBinding);
994 
995  status = RPCRT4_AllocBinding(&DestBinding, SrcBinding->server);
996  if (status != RPC_S_OK) return status;
997 
998  DestBinding->ObjectUuid = SrcBinding->ObjectUuid;
999  DestBinding->BlockingFn = SrcBinding->BlockingFn;
1000  DestBinding->Protseq = RPCRT4_strndupA(SrcBinding->Protseq, -1);
1001  DestBinding->NetworkAddr = RPCRT4_strndupA(SrcBinding->NetworkAddr, -1);
1002  DestBinding->Endpoint = RPCRT4_strndupA(SrcBinding->Endpoint, -1);
1003  DestBinding->NetworkOptions = RPCRT4_strdupW(SrcBinding->NetworkOptions);
1004  DestBinding->CookieAuth = RPCRT4_strdupW(SrcBinding->CookieAuth);
1005  if (SrcBinding->Assoc) SrcBinding->Assoc->refs++;
1006  DestBinding->Assoc = SrcBinding->Assoc;
1007 
1008  if (SrcBinding->AuthInfo) RpcAuthInfo_AddRef(SrcBinding->AuthInfo);
1009  DestBinding->AuthInfo = SrcBinding->AuthInfo;
1010  if (SrcBinding->QOS) RpcQualityOfService_AddRef(SrcBinding->QOS);
1011  DestBinding->QOS = SrcBinding->QOS;
1012 
1013  *DestinationBinding = DestBinding;
1014  return RPC_S_OK;
1015 }
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:109
long RPC_STATUS
Definition: rpc.h:52
ULONG RpcAuthInfo_AddRef(RpcAuthInfo *AuthInfo)
Definition: rpc_binding.c:1179
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:45
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:1356
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 783 of file rpc_binding.c.

784 {
786  TRACE("(%p) = %p\n", Binding, *Binding);
787  if (*Binding)
789  else
791  if (status == RPC_S_OK) *Binding = NULL;
792  return status;
793 }
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:254
#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(), DNSRSLVR_HANDLE_unbind(), 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(), NetpUnbind(), 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 836 of file rpc_binding.c.

837 {
838  RPC_STATUS ret;
839  RpcBinding* bind = NULL;
840  RPC_CSTR ObjectUuid, Protseq, NetworkAddr, Endpoint, Options;
841  UUID Uuid;
842 
843  TRACE("(%s,%p)\n", debugstr_a((char*)StringBinding), Binding);
844 
845  ret = RpcStringBindingParseA(StringBinding, &ObjectUuid, &Protseq,
846  &NetworkAddr, &Endpoint, &Options);
847  if (ret != RPC_S_OK) return ret;
848 
849  ret = UuidFromStringA(ObjectUuid, &Uuid);
850 
851  if (ret == RPC_S_OK)
852  ret = RPCRT4_CreateBindingA(&bind, FALSE, (char*)Protseq);
853  if (ret == RPC_S_OK) {
854  ret = RPCRT4_SetBindingObject(bind, &Uuid);
855  if (ret == RPC_S_OK)
856  ret = RPCRT4_CompleteBindingA(bind, (char*)NetworkAddr, (char*)Endpoint, (char*)Options);
857 
858  if (ret == RPC_S_OK)
860  else
862  }
863 
865  RpcStringFreeA(&Endpoint);
866  RpcStringFreeA(&NetworkAddr);
867  RpcStringFreeA(&Protseq);
868  RpcStringFreeA(&ObjectUuid);
869 
870  return ret;
871 }
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:122
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:564
static RPC_STATUS RPCRT4_CompleteBindingA(RpcBinding *Binding, LPCSTR NetworkAddr, LPCSTR Endpoint, LPCSTR NetworkOptions)
Definition: rpc_binding.c:148
enum OPTION_FLAGS Options
Definition: stats.c:44
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
Definition: rpcrt4_main.c:158
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:254
#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:224
I_RPC_HANDLE RPC_BINDING_HANDLE
Definition: rpcdce.h:50
RPC_STATUS WINAPI UuidFromStringA(RPC_CSTR s, UUID *uuid)
Definition: rpcrt4_main.c:572
#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 876 of file rpc_binding.c.

877 {
878  RPC_STATUS ret;
879  RpcBinding* bind = NULL;
880  RPC_WSTR ObjectUuid, Protseq, NetworkAddr, Endpoint, Options;
881  UUID Uuid;
882 
883  TRACE("(%s,%p)\n", debugstr_w(StringBinding), Binding);
884 
885  ret = RpcStringBindingParseW(StringBinding, &ObjectUuid, &Protseq,
886  &NetworkAddr, &Endpoint, &Options);
887  if (ret != RPC_S_OK) return ret;
888 
889  ret = UuidFromStringW(ObjectUuid, &Uuid);
890 
891  if (ret == RPC_S_OK)
892  ret = RPCRT4_CreateBindingW(&bind, FALSE, Protseq);
893  if (ret == RPC_S_OK) {
894  ret = RPCRT4_SetBindingObject(bind, &Uuid);
895  if (ret == RPC_S_OK)
896  ret = RPCRT4_CompleteBindingW(bind, NetworkAddr, Endpoint, Options);
897 
898  if (ret == RPC_S_OK)
900  else
902  }
903 
905  RpcStringFreeW(&Endpoint);
906  RpcStringFreeW(&NetworkAddr);
907  RpcStringFreeW(&Protseq);
908  RpcStringFreeW(&ObjectUuid);
909 
910  return ret;
911 }
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:174
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:135
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:612
#define debugstr_w
Definition: kernel32.h:32
smooth NULL
Definition: ftsmooth.c:416
RPC_STATUS RPCRT4_ReleaseBinding(RpcBinding *Binding)
Definition: rpc_binding.c:254
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:674
#define TRACE(s)
Definition: solgame.cpp:4
int ret
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding *Binding, const UUID *ObjectUuid)
Definition: rpc_binding.c:224
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:176
#define RPC_S_OK
Definition: rpcnterr.h:22

Referenced by ATSVC_HANDLE_bind(), BROWSER_IDENTIFY_HANDLE_bind(), DNSRSLVR_HANDLE_bind(), DsSetupBind(), EVENTLOG_HANDLE_W_bind(), get_irot_handle(), LOGONSRV_HANDLE_bind(), NetpBind(), 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 1568 of file rpc_binding.c.

1571 {
1572  return RpcBindingInqAuthClientExA(ClientBinding, Privs, ServerPrincName, AuthnLevel,
1573  AuthnSvc, AuthzSvc, 0);
1574 }
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:1592

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 1592 of file rpc_binding.c.

1595 {
1597  RPC_WSTR principal;
1598 
1599  TRACE("%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1600  AuthnSvc, AuthzSvc, Flags);
1601 
1602  status = RpcBindingInqAuthClientExW(ClientBinding, Privs, ServerPrincName ? &principal : NULL,
1603  AuthnLevel, AuthnSvc, AuthzSvc, Flags);
1604  if (status == RPC_S_OK && ServerPrincName)
1605  {
1606  *ServerPrincName = (RPC_CSTR)RPCRT4_strdupWtoA(principal);
1607  if (!*ServerPrincName && principal) status = RPC_S_OUT_OF_MEMORY;
1608  RpcStringFreeW(&principal);
1609  }
1610 
1611  return status;
1612 }
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:174
unsigned short * RPC_WSTR
Definition: rpcdce.h:46
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
Definition: rpc_binding.c:58
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:1618
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 1618 of file rpc_binding.c.

1621 {
1622  RpcBinding *bind;
1623 
1624  TRACE("%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1625  AuthnSvc, AuthzSvc, Flags);
1626 
1627  if (!ClientBinding) ClientBinding = I_RpcGetCurrentCallHandle();
1628  if (!ClientBinding) return RPC_S_INVALID_BINDING;
1629 
1630  bind = ClientBinding;
1631  if (!bind->FromConn) return RPC_S_INVALID_BINDING;
1632 
1633  return rpcrt4_conn_inquire_auth_client(bind->FromConn, Privs,
1634  ServerPrincName, AuthnLevel,
1635  AuthnSvc, AuthzSvc, Flags);
1636 }
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:1743
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 1580 of file rpc_binding.c.

1583 {
1584  return RpcBindingInqAuthClientExW(ClientBinding, Privs, ServerPrincName, AuthnLevel,
1585  AuthnSvc, AuthzSvc, 0);
1586 }
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:1618

◆ 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 1546 of file rpc_binding.c.

1548 {
1549  return RpcBindingInqAuthInfoExA(Binding, ServerPrincName, AuthnLevel, AuthnSvc, AuthIdentity,
1550  AuthzSvc, 0, NULL);
1551 }
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:1478

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 1478 of file rpc_binding.c.

1481 {
1483  RPC_WSTR principal;
1484 
1485  TRACE("%p %p %p %p %p %p %u %p\n", Binding, ServerPrincName, AuthnLevel,
1486  AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1487 
1488  status = RpcBindingInqAuthInfoExW(Binding, ServerPrincName ? &principal : NULL, AuthnLevel,
1489  AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1490  if (status == RPC_S_OK && ServerPrincName)
1491  {
1492  *ServerPrincName = (RPC_CSTR)RPCRT4_strdupWtoA(principal);
1493  RpcStringFreeW(&principal);
1494  if (!*ServerPrincName) return RPC_S_OUT_OF_MEMORY;
1495  }
1496 
1497  return status;
1498 }
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:174
unsigned short * RPC_WSTR
Definition: rpcdce.h:46
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
Definition: rpc_binding.c:58
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:1504
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 1504 of file rpc_binding.c.

1507 {
1508  RpcBinding *bind = Binding;
1509 
1510  TRACE("%p %p %p %p %p %p %u %p\n", Binding, ServerPrincName, AuthnLevel,
1511  AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1512 
1513  if (!bind->AuthInfo) return RPC_S_BINDING_HAS_NO_AUTH;
1514 
1515  if (SecurityQOS)
1516  {
1517  FIXME("QOS not implemented\n");
1518  return RPC_S_INVALID_BINDING;
1519  }
1520 
1521  if (ServerPrincName)
1522  {
1523  if (bind->AuthInfo->server_principal_name)
1524  {
1525  *ServerPrincName = RPCRT4_strdupW(bind->AuthInfo->server_principal_name);
1526  if (!*ServerPrincName) return RPC_S_OUT_OF_MEMORY;
1527  }
1528  else *ServerPrincName = NULL;
1529  }
1530  if (AuthnLevel) *AuthnLevel = bind->AuthInfo->AuthnLevel;
1531  if (AuthnSvc) *AuthnSvc = bind->AuthInfo->AuthnSvc;
1532  if (AuthIdentity) *AuthIdentity = bind->AuthInfo->identity;
1533  if (AuthzSvc)
1534  {
1535  FIXME("authorization service not implemented\n");
1536  *AuthzSvc = RPC_C_AUTHZ_NONE;
1537  }
1538 
1539  return RPC_S_OK;
1540 }
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 1557 of file rpc_binding.c.

1559 {
1560  return RpcBindingInqAuthInfoExW(Binding, ServerPrincName, AuthnLevel, AuthnSvc, AuthIdentity,
1561  AuthzSvc, 0, NULL);
1562 }
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:1504

◆ RpcBindingInqObject()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqObject ( RPC_BINDING_HANDLE  Binding,
UUID ObjectUuid 
)

Definition at line 812 of file rpc_binding.c.

813 {
815 
816  TRACE("(%p,%p) = %s\n", Binding, ObjectUuid, debugstr_guid(&bind->ObjectUuid));
817  *ObjectUuid = bind->ObjectUuid;
818  return RPC_S_OK;
819 }
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 1020 of file rpc_binding.c.

1021 {
1022  RpcBinding *bind = Binding;
1023 
1024  TRACE("(%p)\n", Binding);
1025 
1026  RPCRT4_strfree(bind->Endpoint);
1027  bind->Endpoint = NULL;
1028  if (bind->Assoc) RpcAssoc_Release(bind->Assoc);
1029  bind->Assoc = NULL;
1030 
1031  return RPC_S_OK;
1032 }
ULONG RpcAssoc_Release(RpcAssoc *assoc)
Definition: rpc_assoc.c:187
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:104
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 1642 of file rpc_binding.c.

1643 {
1644  RpcBinding* bind = ClientBinding;
1645  RpcBinding* NewBinding;
1646 
1647  if (!bind)
1649 
1650  if (!bind->server)
1651  return RPC_S_INVALID_BINDING;
1652 
1653  RPCRT4_AllocBinding(&NewBinding, TRUE);
1654  NewBinding->Protseq = RPCRT4_strdupA(bind->Protseq);
1655  NewBinding->NetworkAddr = RPCRT4_strdupA(bind->NetworkAddr);
1656 
1657  *ServerBinding = NewBinding;
1658 
1659  return RPC_S_OK;
1660 }
#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:109
#define RPC_S_INVALID_BINDING
Definition: winerror.h:1013
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
Definition: rpc_server.c:1743
#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 1929 of file rpc_binding.c.

1931 {
1932  TRACE("%p %s %u %u %p %u\n", Binding, debugstr_a((const char*)ServerPrincName),
1933  AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1934  return RpcBindingSetAuthInfoExA(Binding, ServerPrincName, AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, NULL);
1935 }
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:1666
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 1666 of file rpc_binding.c.

1670 {
1671  RpcBinding* bind = Binding;
1673  CredHandle cred;
1674  TimeStamp exp;
1675  ULONG package_count;
1676  ULONG i;
1677  PSecPkgInfoA packages;
1678  ULONG cbMaxToken;
1679 
1680  TRACE("%p %s %u %u %p %u %p\n", Binding, debugstr_a((const char*)ServerPrincName),
1681  AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1682 
1683  if (SecurityQos)
1684  {
1686 
1687  TRACE("SecurityQos { Version=%d, Capabilities=0x%x, IdentityTracking=%d, ImpersonationLevel=%d",
1688  SecurityQos->Version, SecurityQos->Capabilities, SecurityQos->IdentityTracking, SecurityQos->ImpersonationType);
1689  if (SecurityQos->Version >= 2)
1690  {
1691  const RPC_SECURITY_QOS_V2_A *SecurityQos2 = (const RPC_SECURITY_QOS_V2_A *)SecurityQos;
1692  TRACE(", AdditionalSecurityInfoType=%d", SecurityQos2->AdditionalSecurityInfoType);
1694  TRACE(", { %p, 0x%x, %d, %d, %p(%u), %s }",
1695  SecurityQos2->u.HttpCredentials->TransportCredentials,
1696  SecurityQos2->u.HttpCredentials->Flags,
1697  SecurityQos2->u.HttpCredentials->AuthenticationTarget,
1698  SecurityQos2->u.HttpCredentials->NumberOfAuthnSchemes,
1699  SecurityQos2->u.HttpCredentials->AuthnSchemes,
1700  SecurityQos2->u.HttpCredentials->AuthnSchemes ? *SecurityQos2->u.HttpCredentials->AuthnSchemes : 0,
1701  SecurityQos2->u.HttpCredentials->ServerCertificateSubject);
1702  }
1703  TRACE("}\n");
1704  status = RpcQualityOfService_Create(SecurityQos, FALSE, &bind->QOS);
1705  if (status != RPC_S_OK)
1706  return status;
1707  }
1708  else
1709  {
1710  if (bind->QOS) RpcQualityOfService_Release(bind->QOS);
1711  bind->QOS = NULL;
1712  }
1713 
1714  if (AuthnSvc == RPC_C_AUTHN_DEFAULT)
1715  AuthnSvc = RPC_C_AUTHN_WINNT;
1716 
1717  /* FIXME: the mapping should probably be retrieved using SSPI somehow */
1718  if (AuthnLevel == RPC_C_AUTHN_LEVEL_DEFAULT)
1719  AuthnLevel = RPC_C_AUTHN_LEVEL_NONE;
1720 
1721  if ((AuthnLevel == RPC_C_AUTHN_LEVEL_NONE) || (AuthnSvc == RPC_C_AUTHN_NONE))
1722  {
1723  if (bind->AuthInfo) RpcAuthInfo_Release(bind->AuthInfo);
1724  bind->AuthInfo = NULL;
1725  return RPC_S_OK;
1726  }
1727 
1728  if (AuthnLevel > RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
1729  {
1730  FIXME("unknown AuthnLevel %u\n", AuthnLevel);
1732  }
1733 
1734  /* RPC_C_AUTHN_WINNT ignores the AuthzSvr parameter */
1735  if (AuthzSvr && AuthnSvc != RPC_C_AUTHN_WINNT)
1736  {
1737  FIXME("unsupported AuthzSvr %u\n", AuthzSvr);
1739  }
1740 
1741  r = EnumerateSecurityPackagesA(&package_count, &packages);
1742  if (r != SEC_E_OK)
1743  {
1744  ERR("EnumerateSecurityPackagesA failed with error 0x%08x\n", r);
1745  return RPC_S_SEC_PKG_ERROR;
1746  }
1747 
1748  for (i = 0; i < package_count; i++)
1749  if (packages[i].wRPCID == AuthnSvc)
1750  break;
1751 
1752  if (i == package_count)
1753  {
1754  FIXME("unsupported AuthnSvc %u\n", AuthnSvc);
1755  FreeContextBuffer(packages);
1757  }
1758 
1759  TRACE("found package %s for service %u\n", packages[i].Name, AuthnSvc);
1761  AuthIdentity, NULL, NULL, &cred, &exp);
1762  cbMaxToken = packages[i].cbMaxToken;
1763  FreeContextBuffer(packages);
1764  if (r == ERROR_SUCCESS)
1765  {
1766  RpcAuthInfo *new_auth_info;
1767  r = RpcAuthInfo_Create(AuthnLevel, AuthnSvc, cred, exp, cbMaxToken,
1768  AuthIdentity, &new_auth_info);
1769  if (r == RPC_S_OK)
1770  {
1771  new_auth_info->server_principal_name = RPCRT4_strdupAtoW((char *)ServerPrincName);
1772  if (!ServerPrincName || new_auth_info->server_principal_name)
1773  {
1774  if (bind->AuthInfo) RpcAuthInfo_Release(bind->AuthInfo);
1775  bind->AuthInfo = new_auth_info;
1776  }
1777  else
1778  {
1779  RpcAuthInfo_Release(new_auth_info);
1781  }
1782  }
1783  else
1784  FreeCredentialsHandle(&cred);
1785  return r;
1786  }
1787  else
1788  {
1789  ERR("AcquireCredentialsHandleA failed with error 0x%08x\n", r);
1790  return RPC_S_SEC_PKG_ERROR;
1791  }
1792 }
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:278
ULONG RpcAuthInfo_Release(RpcAuthInfo *AuthInfo)
Definition: rpc_binding.c:1184
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
union _RPC_SECURITY_QOS_V2_A::@3108 u
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:1361
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:1113
#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:69
#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:1246
DWORD exp
Definition: msg.c:16038
unsigned char * ServerCertificateSubject
Definition: rpcdce.h:260
#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
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 1798 of file rpc_binding.c.

1801 {
1802  RpcBinding* bind = Binding;
1804  CredHandle cred;
1805  TimeStamp exp;
1806  ULONG package_count;
1807  ULONG i;
1808  PSecPkgInfoW packages;
1809  ULONG cbMaxToken;
1810 
1811  TRACE("%p %s %u %u %p %u %p\n", Binding, debugstr_w(ServerPrincName),
1812  AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1813 
1814  if (SecurityQos)
1815  {
1817 
1818  TRACE("SecurityQos { Version=%d, Capabilities=0x%x, IdentityTracking=%d, ImpersonationLevel=%d",
1819  SecurityQos->Version, SecurityQos->Capabilities, SecurityQos->IdentityTracking, SecurityQos->ImpersonationType);
1820  if (SecurityQos->Version >= 2)
1821  {
1822  const RPC_SECURITY_QOS_V2_W *SecurityQos2 = (const RPC_SECURITY_QOS_V2_W *)SecurityQos;
1823  TRACE(", AdditionalSecurityInfoType=%d", SecurityQos2->AdditionalSecurityInfoType);
1825  TRACE(", { %p, 0x%x, %d, %d, %p(%u), %s }",
1826  SecurityQos2->u.HttpCredentials->TransportCredentials,
1827  SecurityQos2->u.HttpCredentials->Flags,
1828  SecurityQos2->u.HttpCredentials->AuthenticationTarget,
1829  SecurityQos2->u.HttpCredentials->NumberOfAuthnSchemes,
1830  SecurityQos2->u.HttpCredentials->AuthnSchemes,
1831  SecurityQos2->u.HttpCredentials->AuthnSchemes ? *SecurityQos2->u.HttpCredentials->AuthnSchemes : 0,
1833  }
1834  TRACE("}\n");
1835  status = RpcQualityOfService_Create(SecurityQos, TRUE, &bind->QOS);
1836  if (status != RPC_S_OK)
1837  return status;
1838  }
1839  else
1840  {
1841  if (bind->QOS) RpcQualityOfService_Release(bind->QOS);
1842  bind->QOS = NULL;
1843  }
1844 
1845  if (AuthnSvc == RPC_C_AUTHN_DEFAULT)
1846  AuthnSvc = RPC_C_AUTHN_WINNT;
1847 
1848  /* FIXME: the mapping should probably be retrieved using SSPI somehow */
1849  if (AuthnLevel == RPC_C_AUTHN_LEVEL_DEFAULT)
1850  AuthnLevel = RPC_C_AUTHN_LEVEL_NONE;
1851 
1852  if ((AuthnLevel == RPC_C_AUTHN_LEVEL_NONE) || (AuthnSvc == RPC_C_AUTHN_NONE))
1853  {
1854  if (bind->AuthInfo) RpcAuthInfo_Release(bind->AuthInfo);
1855  bind->AuthInfo = NULL;
1856  return RPC_S_OK;
1857  }
1858 
1859  if (AuthnLevel > RPC_C_AUTHN_LEVEL_PKT_PRIVACY)
1860  {
1861  FIXME("unknown AuthnLevel %u\n", AuthnLevel);
1863  }
1864 
1865  /* RPC_C_AUTHN_WINNT ignores the AuthzSvr parameter */
1866  if (AuthzSvr && AuthnSvc != RPC_C_AUTHN_WINNT)
1867  {
1868  FIXME("unsupported AuthzSvr %u\n", AuthzSvr);
1870  }
1871 
1872  r = EnumerateSecurityPackagesW(&package_count, &packages);
1873  if (r != SEC_E_OK)
1874  {
1875  ERR("EnumerateSecurityPackagesW failed with error 0x%08x\n", r);
1876  return RPC_S_SEC_PKG_ERROR;
1877  }
1878 
1879  for (i = 0; i < package_count; i++)
1880  if (packages[i].wRPCID == AuthnSvc)
1881  break;
1882 
1883  if (i == package_count)
1884  {
1885  FIXME("unsupported AuthnSvc %u\n", AuthnSvc);
1886  FreeContextBuffer(packages);
1888  }
1889 
1890  TRACE("found package %s for service %u\n", debugstr_w(packages[i].Name), AuthnSvc);
1892  AuthIdentity, NULL, NULL, &cred, &exp);
1893  cbMaxToken = packages[i].cbMaxToken;
1894  FreeContextBuffer(packages);
1895  if (r == ERROR_SUCCESS)
1896  {
1897  RpcAuthInfo *new_auth_info;
1898  r = RpcAuthInfo_Create(AuthnLevel, AuthnSvc, cred, exp, cbMaxToken,
1899  AuthIdentity, &new_auth_info);
1900  if (r == RPC_S_OK)
1901  {
1902  new_auth_info->server_principal_name = RPCRT4_strdupW(ServerPrincName);
1903  if (!ServerPrincName || new_auth_info->server_principal_name)
1904  {
1905  if (bind->AuthInfo) RpcAuthInfo_Release(bind->AuthInfo);
1906  bind->AuthInfo = new_auth_info;
1907  }
1908  else
1909  {
1910  RpcAuthInfo_Release(new_auth_info);
1912  }
1913  }
1914  else
1915  FreeCredentialsHandle(&cred);
1916  return r;
1917  }
1918  else
1919  {
1920  ERR("AcquireCredentialsHandleW failed with error 0x%08x\n", r);
1921  return RPC_S_SEC_PKG_ERROR;
1922  }
1923 }
union _RPC_SECURITY_QOS_V2_W::@3107 u
#define RPC_C_AUTHN_WINNT
Definition: rpcdce.h:158
#define TRUE
Definition: types.h:120
#define SECPKG_CRED_OUTBOUND
Definition: sspi.h:278
SEC_WINNT_AUTH_IDENTITY_W * TransportCredentials
Definition: rpcdce.h:245
ULONG RpcAuthInfo_Release(RpcAuthInfo *AuthInfo)
Definition: rpc_binding.c:1184
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:1361
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:1113
#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
#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:1246
ULONG AdditionalSecurityInfoType
Definition: rpcdce.h:276
DWORD exp
Definition: msg.c:16038
#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 1941 of file rpc_binding.c.

1943 {
1944  TRACE("%p %s %u %u %p %u\n", Binding, debugstr_w(ServerPrincName),
1945  AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1946  return RpcBindingSetAuthInfoExW(Binding, ServerPrincName, AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, NULL);
1947 }
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:1798
#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 824 of file rpc_binding.c.

825 {
827 
828  TRACE("(%p,%s)\n", Binding, debugstr_guid(ObjectUuid));
829  if (bind->server) return RPC_S_WRONG_KIND_OF_BINDING;
830  return RPCRT4_SetBindingObject(Binding, ObjectUuid);
831 }
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:224

Referenced by RPC_CreateClientChannel().

◆ RpcBindingSetOption()

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

Definition at line 1952 of file rpc_binding.c.

1953 {
1954  TRACE("(%p, %d, %ld)\n", BindingHandle, Option, OptionValue);
1955 
1956  switch (Option)
1957  {
1958  case RPC_C_OPT_COOKIE_AUTH:
1959  {
1961  RpcBinding *binding = BindingHandle;
1962  int len = MultiByteToWideChar(CP_ACP, 0, cookie->Buffer, cookie->BufferSize, NULL, 0);
1963  WCHAR *str;
1964 
1965  if (!(str = HeapAlloc(GetProcessHeap(), 0, (len + 1) * sizeof(WCHAR)))) return RPC_S_OUT_OF_MEMORY;
1966  MultiByteToWideChar(CP_ACP, 0, cookie->Buffer, cookie->BufferSize, str, len);
1967  str[len] = 0;
1968  HeapFree(GetProcessHeap(), 0, binding->CookieAuth);
1969  binding->CookieAuth = str;
1970  break;
1971  }
1972  default:
1973  FIXME("option %u not supported\n", Option);
1974  break;
1975  }
1976  return RPC_S_OK;
1977 }
#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:403
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
Definition: cookie.c:33
#define MultiByteToWideChar
Definition: compat.h:100
#define HeapFree(x, y, z)
Definition: compat.h:402
#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 916 of file rpc_binding.c.

917 {
918  RPC_STATUS ret;
920  RPC_CSTR ObjectUuid;
921 
922  TRACE("(%p,%p)\n", Binding, StringBinding);
923 
924  if (UuidIsNil(&bind->ObjectUuid, &ret))
925  ObjectUuid = NULL;
926  else
927  {
928  ret = UuidToStringA(&bind->ObjectUuid, &ObjectUuid);
929  if (ret != RPC_S_OK) return ret;
930  }
931 
932  ret = RpcStringBindingComposeA(ObjectUuid, (unsigned char*)bind->Protseq, (unsigned char*) bind->NetworkAddr,
933  (unsigned char*) bind->Endpoint, NULL, StringBinding);
934 
935  RpcStringFreeA(&ObjectUuid);
936 
937  return ret;
938 }
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:457
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
Definition: rpcrt4_main.c:158
int WINAPI UuidIsNil(UUID *Uuid, RPC_STATUS *Status)
Definition: rpcrt4_main.c:266
long RPC_STATUS
Definition: rpc.h:52
RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, RPC_CSTR *StringUuid)
Definition: rpcrt4_main.c:512
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 943 of file rpc_binding.c.

944 {
945  RPC_STATUS ret;
946  unsigned char *str = NULL;
947  TRACE("(%p,%p)\n", Binding, StringBinding);
949  *StringBinding = RPCRT4_strdupAtoW((char*)str);
951  return ret;
952 }
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
Definition: rpcrt4_main.c:158
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:916
#define TRACE(s)
Definition: solgame.cpp:4
LPWSTR RPCRT4_strdupAtoW(LPCSTR src)
Definition: rpc_binding.c:69
int ret

Referenced by CreateJob().

◆ RpcBindingVectorFree()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingVectorFree ( RPC_BINDING_VECTOR **  BindingVector)

Definition at line 798 of file rpc_binding.c.

799 {
800  ULONG c;
801 
802  TRACE("(%p)\n", BindingVector);
803  for (c=0; c<(*BindingVector)->Count; c++) RpcBindingFree(&(*BindingVector)->BindingH[c]);
804  HeapFree(GetProcessHeap(), 0, *BindingVector);
805  *BindingVector = NULL;
806  return RPC_S_OK;
807 }
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
Definition: rpc_binding.c:783
smooth NULL
Definition: ftsmooth.c:416
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
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:402
#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 1052 of file rpcrt4_main.c.

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

◆ RpcCancelThreadEx()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcCancelThreadEx ( void ,
LONG   
)

Definition at line 1061 of file rpcrt4_main.c.

1062 {
1063  DWORD target_tid;
1064 
1065  FIXME("(%p, %d)\n", ThreadHandle, Timeout);
1066 
1067  target_tid = GetThreadId(ThreadHandle);
1068  if (!target_tid)
1069  return RPC_S_INVALID_ARG;
1070 
1071  if (Timeout)
1072  {
1073  FIXME("(%p, %d)\n", ThreadHandle, Timeout);
1074  return RPC_S_OK;
1075  }
1076  else
1077  return rpc_cancel_thread(target_tid);
1078 }
#define RPC_S_INVALID_ARG
Definition: rpcnterr.h:23
DWORD WINAPI GetThreadId(IN HANDLE Thread)
Definition: thread.c:912
static RPC_STATUS rpc_cancel_thread(DWORD target_tid)
Definition: rpcrt4_main.c:1031
#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:58
long RPC_STATUS
Definition: rpc.h:52
unsigned char * RPC_CSTR
Definition: rpcdce.h:45
#define GetProcessHeap()
Definition: compat.h:403
static SERVICE_STATUS status
Definition: service.c:31
#define HeapFree(x, y, z)
Definition: compat.h:402
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:58
long RPC_STATUS
Definition: rpc.h:52
unsigned char * RPC_CSTR
Definition: rpcdce.h:45
#define GetProcessHeap()
Definition: compat.h:403
static SERVICE_STATUS status
Definition: service.c:31
#define HeapFree(x, y, z)
Definition: compat.h:402
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:783
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:722
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:66
#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:204
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:783
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:722
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:66
RPC_SYNTAX_IDENTIFIER TransferSyntax
Definition: rpcdcep.h:105
#define TRACE(s)
Definition: solgame.cpp:4
#define GetProcessHeap()
Definition: compat.h:403
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:402
#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 1052 of file rpc_binding.c.

1053 {
1054  RpcBinding *bind;
1055 
1056  TRACE("(%p)\n", BindingHandle);
1057 
1059  if (!BindingHandle) return RPC_S_INVALID_BINDING;
1060 
1061  bind = BindingHandle;
1062  if (bind->FromConn)
1063  return rpcrt4_conn_impersonate_client(bind->FromConn);
1065 }
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:1743

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 1611 of file rpc_server.c.

1612 {
1613  FIXME("(): stub\n");
1614  return RPC_S_OK;
1615 }
#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 1693 of file rpc_server.c.

1695 {
1696  FIXME("(%p,%u,%p,%u,%p,%p): stub\n",
1697  Binding, InquiryType, IfId, VersOption, ObjectUuid, InquiryContext);
1698  return RPC_S_INVALID_BINDING;
1699 }
#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 1650 of file rpc_server.c.

1651 {
1652  FIXME("(%p,%p): stub\n", Binding, IfIdVector);
1653  return RPC_S_INVALID_BINDING;
1654 }
#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 1659 of file rpc_server.c.

1660 {
1661  RPC_STATS_VECTOR *stats;
1662 
1663  FIXME("(%p,%p)\n", Binding, Statistics);
1664 
1665  if ((stats = HeapAlloc(GetProcessHeap(), 0, sizeof(RPC_STATS_VECTOR))))
1666  {
1667  stats->Count = 1;
1668  stats->Stats[0] = 0;
1669  *Statistics = stats;
1670  return RPC_S_OK;
1671  }
1672  return RPC_S_OUT_OF_RESOURCES;
1673 }
unsigned int Count
Definition: rpcdce.h:84
#define FIXME(fmt,...)
Definition: debug.h:110
#define GetProcessHeap()
Definition: compat.h:403
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 1704 of file rpc_server.c.

1705 {
1707 
1708  TRACE("(%p)\n", Binding);
1709 
1710  if (Binding) {
1711  RpcBinding *rpc_binding = (RpcBinding*)Binding;
1712  status = RPCRT4_IsServerListening(rpc_binding->Protseq, rpc_binding->Endpoint);
1713  }else {
1717  }
1718 
1719  return status;
1720 }
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:81
static HANDLE listen_done_event
Definition: rpc_server.c:104
static BOOL std_listen
Definition: rpc_server.c:100
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 1725 of file rpc_server.c.

1726 {
1727  FIXME("(%p): stub\n", fn);
1728  return RPC_S_OK;
1729 }
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 924 of file rpcrt4_main.c.

925 {
926  FIXME("(%d): stub\n", Timeout);
927  return RPC_S_OK;
928 }
#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 1468 of file rpc_binding.c.

1469 {
1470  FIXME("(%p, %d): stub\n", BindingHandle, Timeout);
1471  return RPC_S_OK;
1472 }
_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 1734 of file rpc_server.c.

1735 {
1736  FIXME("(0x%x): stub\n", ThreadStackSize);
1737  return RPC_S_OK;
1738 }
#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 1678 of file rpc_server.c.

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

◆ RpcMgmtStopServerListening()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcMgmtStopServerListening ( RPC_BINDING_HANDLE  Binding)

Definition at line 1596 of file rpc_server.c.

1597 {
1598  TRACE("(Binding == (RPC_BINDING_HANDLE)^%p)\n", Binding);
1599 
1600  if (Binding) {
1601  FIXME("client-side invocation not implemented.\n");
1603  }
1604 
1605  return RPCRT4_stop_listen(FALSE);
1606 }
#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:779

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 1539 of file rpc_server.c.

1540 {
1541  RpcServerProtseq *protseq;
1542  HANDLE event, wait_thread;
1543 
1544  TRACE("()\n");
1545 
1547  event = listen_done_event;
1549 
1550  if (!event)
1551  return RPC_S_NOT_LISTENING;
1552 
1553  TRACE( "waiting for server calls to finish\n" );
1555  TRACE( "done waiting\n" );
1556 
1558  /* wait for server threads to finish */
1559  while(1)
1560  {
1561  if (listen_count)
1562  break;
1563 
1564  wait_thread = NULL;
1567  {
1568  if ((wait_thread = protseq->server_thread))
1569  {
1570  protseq->server_thread = NULL;
1571  break;
1572  }
1573  }
1575  if (!wait_thread)
1576  break;
1577 
1578  TRACE("waiting for thread %u\n", GetThreadId(wait_thread));
1580  WaitForSingleObject(wait_thread, INFINITE);
1581  CloseHandle(wait_thread);
1583  }
1584  if (listen_done_event == event)
1585  {
1587  CloseHandle( event );
1588  }
1590  return RPC_S_OK;
1591 }
static struct list protseqs
Definition: rpc_server.c:68
#define CloseHandle
Definition: compat.h:406
DWORD WINAPI GetThreadId(IN HANDLE Thread)
Definition: thread.c:912
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static CRITICAL_SECTION server_cs
Definition: rpc_server.c:72
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:102
uint32_t entry
Definition: isohybrid.c:63
static CRITICAL_SECTION listen_cs
Definition: rpc_server.c:81
struct _cl_event * event
Definition: glext.h:7739
static HANDLE listen_done_event
Definition: rpc_server.c:104
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 3701 of file rpc_transport.c.

3702 {
3703  RPC_PROTSEQ_VECTORA *pvector;
3704  unsigned int i;
3706 
3707  TRACE("(%p)\n", protseqs);
3708 
3709  *protseqs = HeapAlloc(GetProcessHeap(), 0, sizeof(RPC_PROTSEQ_VECTORW)+(sizeof(unsigned char*)*ARRAY_SIZE(protseq_list)));
3710  if (!*protseqs)
3711  goto end;
3712  pvector = *protseqs;
3713  pvector->Count = 0;
3714  for (i = 0; i < ARRAY_SIZE(protseq_list); i++)
3715  {
3716  pvector->Protseq[i] = HeapAlloc(GetProcessHeap(), 0, strlen(protseq_list[i].name)+1);
3717  if (pvector->Protseq[i] == NULL)
3718  goto end;
3719  strcpy((char*)pvector->Protseq[i], protseq_list[i].name);
3720  pvector->Count++;
3721  }
3722  status = RPC_S_OK;
3723 
3724 end:
3725  if (status != RPC_S_OK)
3727  return status;
3728 }
static struct list protseqs
Definition: rpc_server.c:68
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:403
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:38
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 3668 of file rpc_transport.c.

3669 {
3670  RPC_PROTSEQ_VECTORW *pvector;
3671  unsigned int i;
3673 
3674  TRACE("(%p)\n", protseqs);
3675 
3676  *protseqs = HeapAlloc(GetProcessHeap(), 0, sizeof(RPC_PROTSEQ_VECTORW)+(sizeof(unsigned short*)*ARRAY_SIZE(protseq_list)));
3677  if (!*protseqs)
3678  goto end;
3679  pvector = *protseqs;
3680  pvector->Count = 0;
3681  for (i = 0; i < ARRAY_SIZE(protseq_list); i++)
3682  {
3683  pvector->Protseq[i] = HeapAlloc(GetProcessHeap(), 0, (strlen(protseq_list[i].name)+1)*sizeof(unsigned short));
3684  if (pvector->Protseq[i] == NULL)
3685  goto end;
3687  (WCHAR*)pvector->Protseq[i], strlen(protseq_list[i].name) + 1);
3688  pvector->Count++;
3689  }
3690  status = RPC_S_OK;
3691 
3692 end:
3693  if (status != RPC_S_OK)
3695  return status;
3696 }
static struct list protseqs
Definition: rpc_server.c:68
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:403
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:38
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 3616 of file rpc_transport.c.

3617 {
3618  UNICODE_STRING protseqW;
3619 
3620  if (RtlCreateUnicodeStringFromAsciiz(&protseqW, (char*)protseq))
3621  {
3623  RtlFreeUnicodeString(&protseqW);
3624  return ret;
3625  }
3626  return RPC_S_OUT_OF_MEMORY;
3627 }
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 3599 of file rpc_transport.c.

3600 {
3601  char ps[0x10];
3602 
3603  WideCharToMultiByte(CP_ACP, 0, protseq, -1,
3604  ps, sizeof ps, NULL, NULL);
3606  return RPC_S_OK;
3607 
3608  FIXME("Unknown protseq %s\n", debugstr_w(protseq));
3609 
3611 }
#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 1281 of file rpc_server.c.

1282 {
1283  RpcObjTypeMap *map = RpcObjTypeMaps, *prev = NULL;
1284  RPC_STATUS dummy;
1285 
1286  TRACE("(ObjUUID == %s, TypeUuid == %s).\n", debugstr_guid(ObjUuid), debugstr_guid(TypeUuid));
1287  if ((! ObjUuid) || UuidIsNil(ObjUuid, &dummy)) {
1288  /* nil uuid cannot be remapped */
1289  return RPC_S_INVALID_OBJECT;
1290  }
1291 
1292  /* find the mapping for this object if there is one ... */
1293  while (map) {
1294  if (! UuidCompare(ObjUuid, &map->Object, &dummy)) break;
1295  prev = map;
1296  map = map->next;
1297  }
1298  if ((! TypeUuid) || UuidIsNil(TypeUuid, &dummy)) {
1299  /* ... and drop it from the list */
1300  if (map) {
1301  if (prev)
1302  prev->next = map->next;
1303  else
1304  RpcObjTypeMaps = map->next;
1305  HeapFree(GetProcessHeap(), 0, map);
1306  }
1307  } else {
1308  /* ... , fail if we found it ... */
1309  if (map)
1310  return RPC_S_ALREADY_REGISTERED;
1311  /* ... otherwise create a new one and add it in. */
1312  map = HeapAlloc(GetProcessHeap(), 0, sizeof(RpcObjTypeMap));
1313  map->Object = *ObjUuid;
1314  map->Type = *TypeUuid;
1315  map->next = NULL;
1316  if (prev)
1317  prev->next = map; /* prev is the last map in the linklist */
1318  else
1319  RpcObjTypeMaps = map;
1320  }
1321 
1322  return RPC_S_OK;
1323 }
int WINAPI UuidCompare(UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status)
Definition: rpcrt4_main.c:207
int WINAPI UuidIsNil(UUID *Uuid, RPC_STATUS *Status)
Definition: rpcrt4_main.c:266
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:403
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:402
#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:65

◆ RpcProtseqVectorFreeA()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcProtseqVectorFreeA ( RPC_PROTSEQ_VECTORA **  protseqs)

Definition at line 3632 of file rpc_transport.c.

3633 {
3634  TRACE("(%p)\n", protseqs);
3635 
3636  if (*protseqs)
3637  {
3638  unsigned int i;
3639  for (i = 0; i < (*protseqs)->Count; i++)
3640  HeapFree(GetProcessHeap(), 0, (*protseqs)->Protseq[i]);
3642  *protseqs = NULL;
3643  }
3644  return RPC_S_OK;
3645 }
static struct list protseqs
Definition: rpc_server.c:68
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:403
#define HeapFree(x, y, z)
Definition: compat.h:402
#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 3650 of file rpc_transport.c.

3651 {
3652  TRACE("(%p)\n", protseqs);
3653 
3654  if (*protseqs)
3655  {
3656  unsigned int i;
3657  for (i = 0; i < (*protseqs)->Count; i++)
3658  HeapFree(GetProcessHeap(), 0, (*protseqs)->Protseq[i]);
3660  *protseqs = NULL;
3661  }
3662  return RPC_S_OK;
3663 }
static struct list protseqs
Definition: rpc_server.c:68
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:403
#define HeapFree(x, y, z)
Definition: compat.h:402
#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 186 of file rpcrt4_main.c.

187 {
188  /* shouldn't return */
189  RaiseException(exception, 0, 0, NULL);
190  ERR("handler continued execution\n");
191  ExitProcess(1);
192 }
VOID WINAPI ExitProcess(IN UINT uExitCode)
Definition: proc.c:1487
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(), do_ndr_async_client_call(), do_ndr_client_call(), 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(), NdrAllocate(), NdrAsyncServerCall(), 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(), NdrpCompleteAsyncServerCall(), NdrPointerUnmarshall(), NdrProxyGetBuffer(), NdrProxyInitialize(), 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 1085 of file rpc_binding.c.

1086 {
1087  RpcBinding *bind;
1088 
1089  TRACE("(%p)\n", BindingHandle);
1090 
1092  if (!BindingHandle) return RPC_S_INVALID_BINDING;
1093 
1094  bind = BindingHandle;
1095  if (bind->FromConn)
1096  return rpcrt4_conn_revert_to_self(bind->FromConn);
1098 }
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:1743

Referenced by RpcRevertToSelf().

◆ RpcServerInqBindings()

RPCRTAPI RPC_STATUS RPC_ENTRY RpcServerInqBindings ( RPC_BINDING_VECTOR **  BindingVector)

Definition at line 861 of file rpc_server.c.

862 {
864  DWORD count;
865  RpcServerProtseq* ps;
866  RpcConnection* conn;
867 
868  if (BindingVector)
869  TRACE("(*BindingVector == ^%p)\n", *BindingVector);
870  else
871  ERR("(BindingVector == NULL!!?)\n");
872 
874  /* count connections */
875  count = 0;
877  EnterCriticalSection(&ps->cs);
878  LIST_FOR_EACH_ENTRY(conn, &ps->listeners, RpcConnection, protseq_entry)
879  count++;
880  LeaveCriticalSection(&ps->cs);
881  }
882  if (count) {
883  /* export bindings */
884  *BindingVector = HeapAlloc(GetProcessHeap(), 0,
885  sizeof(RPC_BINDING_VECTOR) +
886  sizeof(RPC_BINDING_HANDLE)*(count-1));
887  (*BindingVector)->Count = count;
888  count = 0;
890  EnterCriticalSection(&ps->cs);
891  LIST_FOR_EACH_ENTRY(conn, &ps->listeners, RpcConnection, protseq_entry) {
892  RPCRT4_MakeBinding((RpcBinding**)&(*BindingVector)->BindingH[count],
893  conn);
894  count++;
895  }
896  LeaveCriticalSection(&ps->cs);
897  }
898  status = RPC_S_OK;
899  } else {
900  *BindingVector = NULL;
902  }
904  return status;
905 }
static struct list protseqs
Definition: rpc_server.c:68
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
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static CRITICAL_SECTION server_cs
Definition: rpc_server.c:72
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:403
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
unsigned long DWORD
Definition: ntddk_ex.h:95
uint32_t entry
Definition: isohybrid.c:63
RPC_STATUS RPCRT4_MakeBinding(RpcBinding **Binding, RpcConnection *Connection)
Definition: rpc_binding.c:232
#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 1481 of file rpc_server.c.

1482 {
1483  RPC_STATUS ret;
1484  RPC_WSTR principalW;
1485 
1486  TRACE("%u, %p\n", AuthnSvc, PrincName);
1487 
1488  if ((ret = RpcServerInqDefaultPrincNameW( AuthnSvc, &principalW )) == RPC_S_OK)
1489  {
1490  if (!(*PrincName = (RPC_CSTR)RPCRT4_strdupWtoA( principalW ))) return RPC_S_OUT_OF_MEMORY;
1491  RpcStringFreeW( &principalW );
1492  }
1493  return ret;
1494 }
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
Definition: rpcrt4_main.c:174
unsigned short * RPC_WSTR
Definition: rpcdce.h:46
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
Definition: rpc_binding.c:58
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:1499
#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 1499 of file rpc_server.c.

1500 {
1501  ULONG len = 0;
1502 
1503  FIXME("%u, %p\n", AuthnSvc, PrincName);
1504 
1505  if (AuthnSvc !=