33#include "wine/winternl.h"
114 NewBinding->
refs = 1;
129 TRACE(
"binding: %p\n", NewBinding);
142 TRACE(
"binding: %p\n", NewBinding);
153 TRACE(
"(RpcBinding == ^%p, NetworkAddr == %s, EndPoint == %s, NetworkOptions == %s)\n",
Binding,
164 if (Endpoint && Endpoint[0] !=
'\0')
181 TRACE(
"(RpcBinding == ^%p, NetworkAddr == %s, EndPoint == %s, NetworkOptions == %s)\n",
Binding,
192 if (Endpoint && Endpoint[0] !=
'\0')
208 TRACE(
"(RpcBinding == ^%p, EndPoint == \"%s\"\n",
Binding, Endpoint);
227 if (ObjectUuid)
Binding->ObjectUuid = *ObjectUuid;
235 TRACE(
"(RpcBinding == ^%p, Connection == ^%p)\n",
Binding, Connection);
243 TRACE(
"binding: %p\n", NewBinding);
284 *Connection =
Binding->FromConn;
287 ERR(
"no connection in binding\n");
299 if (
Binding->FromConn != Connection)
339 const unsigned char *component)
341 for (; *component; component++) {
342 switch (*component) {
348 *string_binding++ =
'\\';
349 *string_binding++ = *component;
352 *string_binding++ = *component;
356 return string_binding;
360 const WCHAR *component)
362 for (; *component; component++) {
363 switch (*component) {
369 *string_binding++ =
'\\';
370 *string_binding++ = *component;
373 *string_binding++ = *component;
377 return string_binding;
381 const unsigned char *string_binding,
unsigned char delim)
383 const unsigned char *
next;
411 const unsigned char *string_binding,
int len)
415 if (
len == -1)
len =
strlen((
const char *)string_binding);
418 if (!component)
return NULL;
419 for (
p = component;
len > 0; string_binding++,
len--) {
420 if (*string_binding ==
'\\') {
423 *
p++ = *string_binding;
425 *
p++ = *string_binding;
433 const WCHAR *string_binding,
int len)
440 if (!component)
return NULL;
441 for (
p = component;
len > 0; string_binding++,
len--) {
442 if (*string_binding ==
'\\') {
445 *
p++ = *string_binding;
447 *
p++ = *string_binding;
464 TRACE(
"(%s,%s,%s,%s,%s,%p)\n",
470 if (ObjUuid && *ObjUuid)
len +=
strlen((
char*)ObjUuid) * 2 + 1;
471 if (Protseq && *Protseq)
len +=
strlen((
char*)Protseq) * 2 + 1;
472 if (NetworkAddr && *NetworkAddr)
len +=
strlen((
char*)NetworkAddr) * 2;
473 if (Endpoint && *Endpoint)
len +=
strlen((
char*)Endpoint) * 2 + 2;
477 *StringBinding =
data;
479 if (ObjUuid && *ObjUuid) {
483 if (Protseq && *Protseq) {
487 if (NetworkAddr && *NetworkAddr)
490 if ((Endpoint && *Endpoint) ||
493 if (Endpoint && *Endpoint) {
517 TRACE(
"(%s,%s,%s,%s,%s,%p)\n",
523 if (ObjUuid && *ObjUuid)
len +=
lstrlenW(ObjUuid) * 2 + 1;
524 if (Protseq && *Protseq)
len +=
lstrlenW(Protseq) * 2 + 1;
525 if (NetworkAddr && *NetworkAddr)
len +=
lstrlenW(NetworkAddr) * 2;
526 if (Endpoint && *Endpoint)
len +=
lstrlenW(Endpoint) * 2 + 2;
530 *StringBinding =
data;
532 if (ObjUuid && *ObjUuid) {
536 if (Protseq && *Protseq) {
540 if (NetworkAddr && *NetworkAddr) {
543 if ((Endpoint && *Endpoint) ||
546 if (Endpoint && *Endpoint) {
569 static const char ep_opt[] =
"endpoint=";
573 ObjUuid, Protseq, NetworkAddr, Endpoint,
Options);
575 if (ObjUuid) *ObjUuid =
NULL;
576 if (Protseq) *Protseq =
NULL;
577 if (NetworkAddr) *NetworkAddr =
NULL;
578 if (Endpoint) *Endpoint =
NULL;
581 data = StringBinding;
610 const unsigned char *
close;
616 if (!
close)
goto fail;
630 if (endpoint_already_found)
goto fail;
631 if (Endpoint) *Endpoint = opt;
633 endpoint_already_found =
TRUE;
635 if (
strncmp((
const char *)opt, ep_opt,
strlen(ep_opt)) == 0) {
637 if (endpoint_already_found)
goto fail;
640 endpoint_already_found =
TRUE;
657 if (*
data)
goto fail;
659 else if (NetworkAddr)
681 static const WCHAR ep_opt[] = {
'e',
'n',
'd',
'p',
'o',
'i',
'n',
't',
'=',0};
685 ObjUuid, Protseq, NetworkAddr, Endpoint,
Options);
687 if (ObjUuid) *ObjUuid =
NULL;
688 if (Protseq) *Protseq =
NULL;
689 if (NetworkAddr) *NetworkAddr =
NULL;
690 if (Endpoint) *Endpoint =
NULL;
693 data = StringBinding;
728 if (!
close)
goto fail;
742 if (endpoint_already_found)
goto fail;
743 if (Endpoint) *Endpoint = opt;
745 endpoint_already_found =
TRUE;
749 if (endpoint_already_found)
goto fail;
752 endpoint_already_found =
TRUE;
769 if (*
data)
goto fail;
770 }
else if (NetworkAddr)
806 TRACE(
"(%p)\n", BindingVector);
807 for (
c=0;
c<(*BindingVector)->Count;
c++)
RpcBindingFree(&(*BindingVector)->BindingH[
c]);
809 *BindingVector =
NULL;
821 *ObjectUuid =
bind->ObjectUuid;
850 &NetworkAddr, &Endpoint, &
Options);
890 &NetworkAddr, &Endpoint, &
Options);
937 (
unsigned char*)
bind->Endpoint,
NULL, StringBinding);
981 bind->BlockingFn = BlockingFn;
997 TRACE(
"(%p, %p)\n", SourceBinding, DestinationBinding);
1009 if (SrcBinding->
Assoc) SrcBinding->
Assoc->refs++;
1015 DestBinding->
QOS = SrcBinding->
QOS;
1017 *DestinationBinding = DestBinding;
1130 AuthInfo->
cred = cred;
1211 if (AuthInfo1 == AuthInfo2)
1214 if (!AuthInfo1 || !AuthInfo2)
1277 if (!http_credentials_dst)
goto error;
1279 http_credentials_dst->
Flags = http_credentials_src->
Flags;
1288 if (!cred_dst)
goto error;
1398 TRACE(
"qos1 = { %d %d %d %d }, qos2 = { %d %d %d %d }\n",
1415 if (http_credentials1->
Flags != http_credentials2->
Flags)
1439 if (!identity1 || !identity2)
1489 TRACE(
"%p %p %p %p %p %p %u %p\n",
Binding, ServerPrincName, AuthnLevel,
1490 AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1493 AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1514 TRACE(
"%p %p %p %p %p %p %u %p\n",
Binding, ServerPrincName, AuthnLevel,
1515 AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1521 FIXME(
"QOS not implemented\n");
1525 if (ServerPrincName)
1527 if (
bind->AuthInfo->server_principal_name)
1532 else *ServerPrincName =
NULL;
1534 if (AuthnLevel) *AuthnLevel =
bind->AuthInfo->AuthnLevel;
1535 if (AuthnSvc) *AuthnSvc =
bind->AuthInfo->AuthnSvc;
1536 if (AuthIdentity) *AuthIdentity =
bind->AuthInfo->identity;
1539 FIXME(
"authorization service not implemented\n");
1577 AuthnSvc, AuthzSvc, 0);
1589 AuthnSvc, AuthzSvc, 0);
1603 TRACE(
"%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1604 AuthnSvc, AuthzSvc,
Flags);
1607 AuthnLevel, AuthnSvc, AuthzSvc,
Flags);
1628 TRACE(
"%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1629 AuthnSvc, AuthzSvc,
Flags);
1634 bind = ClientBinding;
1638 ServerPrincName, AuthnLevel,
1639 AuthnSvc, AuthzSvc,
Flags);
1661 *ServerBinding = NewBinding;
1679 ULONG package_count;
1685 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1691 TRACE(
"SecurityQos { Version=%d, Capabilities=0x%x, IdentityTracking=%d, ImpersonationLevel=%d",
1693 if (SecurityQos->
Version >= 2)
1698 TRACE(
", { %p, 0x%x, %d, %d, %p(%u), %s }",
1734 FIXME(
"unknown AuthnLevel %u\n", AuthnLevel);
1741 FIXME(
"unsupported AuthzSvr %u\n", AuthzSvr);
1748 ERR(
"EnumerateSecurityPackagesA failed with error 0x%08x\n",
r);
1752 for (
i = 0;
i < package_count;
i++)
1753 if (packages[
i].wRPCID == AuthnSvc)
1756 if (
i == package_count)
1758 FIXME(
"unsupported AuthnSvc %u\n", AuthnSvc);
1763 TRACE(
"found package %s for service %u\n", packages[
i].
Name, AuthnSvc);
1772 AuthIdentity, &new_auth_info);
1779 bind->AuthInfo = new_auth_info;
1793 ERR(
"AcquireCredentialsHandleA failed with error 0x%08x\n",
r);
1810 ULONG package_count;
1816 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1822 TRACE(
"SecurityQos { Version=%d, Capabilities=0x%x, IdentityTracking=%d, ImpersonationLevel=%d",
1824 if (SecurityQos->
Version >= 2)
1829 TRACE(
", { %p, 0x%x, %d, %d, %p(%u), %s }",
1865 FIXME(
"unknown AuthnLevel %u\n", AuthnLevel);
1872 FIXME(
"unsupported AuthzSvr %u\n", AuthzSvr);
1879 ERR(
"EnumerateSecurityPackagesW failed with error 0x%08x\n",
r);
1883 for (
i = 0;
i < package_count;
i++)
1884 if (packages[
i].wRPCID == AuthnSvc)
1887 if (
i == package_count)
1889 FIXME(
"unsupported AuthnSvc %u\n", AuthnSvc);
1903 AuthIdentity, &new_auth_info);
1910 bind->AuthInfo = new_auth_info;
1924 ERR(
"AcquireCredentialsHandleW failed with error 0x%08x\n",
r);
1937 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1949 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1977 FIXME(
"option %u not supported\n", Option);
1989 FIXME(
"%p %p: stub\n", ClientBinding, ClientPID);
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
ACPI_SIZE strlen(const char *String)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define HeapFree(x, y, z)
#define WideCharToMultiByte
#define MultiByteToWideChar
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble r
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
#define memcpy(s1, s2, n)
#define SECPKG_CRED_OUTBOUND
static unsigned __int64 next
RPC_STATUS RPCRT4_GetAssociation(LPCSTR Protseq, LPCSTR NetworkAddr, LPCSTR Endpoint, LPCWSTR NetworkOptions, RpcAssoc **assoc_out)
void RpcAssoc_ReleaseIdleConnection(RpcAssoc *assoc, RpcConnection *Connection)
ULONG RpcAssoc_Release(RpcAssoc *assoc)
RPC_STATUS RpcAssoc_GetClientConnection(RpcAssoc *assoc, const RPC_SYNTAX_IDENTIFIER *InterfaceId, const RPC_SYNTAX_IDENTIFIER *TransferSyntax, RpcAuthInfo *AuthInfo, RpcQualityOfService *QOS, LPCWSTR CookieAuth, RpcConnection **Connection, BOOL *from_cache)
static RPC_WSTR escape_string_binding_componentW(RPC_WSTR string_binding, const WCHAR *component)
static BOOL has_nt_auth_identity(ULONG AuthnLevel)
static RPC_STATUS RPCRT4_AllocBinding(RpcBinding **Binding, BOOL server)
RPC_STATUS RpcAuthInfo_Create(ULONG AuthnLevel, ULONG AuthnSvc, CredHandle cred, TimeStamp exp, ULONG cbMaxToken, RPC_AUTH_IDENTITY_HANDLE identity, RpcAuthInfo **ret)
RPC_STATUS WINAPI RpcBindingFromStringBindingW(RPC_WSTR StringBinding, RPC_BINDING_HANDLE *Binding)
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
BOOL RpcAuthInfo_IsEqual(const RpcAuthInfo *AuthInfo1, const RpcAuthInfo *AuthInfo2)
static const WCHAR * string_binding_find_delimiterW(const WCHAR *string_binding, WCHAR delim)
LPSTR RPCRT4_strndupA(LPCSTR src, INT slen)
static RPC_WSTR unescape_string_binding_componentW(const WCHAR *string_binding, int len)
RPC_STATUS RPCRT4_ResolveBinding(RpcBinding *Binding, LPCSTR Endpoint)
RPC_STATUS WINAPI RpcMgmtSetComTimeout(RPC_BINDING_HANDLE BindingHandle, unsigned int Timeout)
static LPWSTR RPCRT4_strconcatW(LPWSTR dst, LPCWSTR src)
RPC_STATUS WINAPI RpcStringBindingComposeW(RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE Binding, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc)
void RPCRT4_AddRefBinding(RpcBinding *Binding)
static RPC_STATUS RPCRT4_CreateBindingW(RpcBinding **Binding, BOOL server, LPCWSTR Protseq)
RPC_STATUS RPCRT4_CloseBinding(RpcBinding *Binding, RpcConnection *Connection)
ULONG RpcAuthInfo_AddRef(RpcAuthInfo *AuthInfo)
RPC_STATUS WINAPI RpcBindingInqObject(RPC_BINDING_HANDLE Binding, UUID *ObjectUuid)
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
RPC_STATUS WINAPI RpcStringBindingParseW(RPC_WSTR StringBinding, RPC_WSTR *ObjUuid, RPC_WSTR *Protseq, RPC_WSTR *NetworkAddr, RPC_WSTR *Endpoint, RPC_WSTR *Options)
RPC_STATUS RPCRT4_MakeBinding(RpcBinding **Binding, RpcConnection *Connection)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr)
ULONG RpcQualityOfService_AddRef(RpcQualityOfService *qos)
ULONG RpcAuthInfo_Release(RpcAuthInfo *AuthInfo)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingServerFromClient(RPC_BINDING_HANDLE ClientBinding, RPC_BINDING_HANDLE *ServerBinding)
RPC_STATUS WINAPI RpcStringBindingParseA(RPC_CSTR StringBinding, RPC_CSTR *ObjUuid, RPC_CSTR *Protseq, RPC_CSTR *NetworkAddr, RPC_CSTR *Endpoint, RPC_CSTR *Options)
static RPC_STATUS RpcQualityOfService_Create(const RPC_SECURITY_QOS *qos_src, BOOL unicode, RpcQualityOfService **qos_dst)
void RPCRT4_strfree(LPSTR src)
static RPC_STATUS RPCRT4_CreateBindingA(RpcBinding **Binding, BOOL server, LPCSTR Protseq)
RPC_STATUS RPCRT4_ReleaseBinding(RpcBinding *Binding)
LPWSTR RPCRT4_strdupAtoW(LPCSTR src)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr)
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding *Binding, const UUID *ObjectUuid)
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)
RPC_STATUS WINAPI RpcBindingToStringBindingW(RPC_BINDING_HANDLE Binding, RPC_WSTR *StringBinding)
static RPC_CSTR escape_string_binding_component(RPC_CSTR string_binding, const unsigned char *component)
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)
RPC_STATUS WINAPI I_RpcBindingSetAsync(RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn)
RPC_STATUS WINAPI RpcRevertToSelf(void)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoA(RPC_BINDING_HANDLE Binding, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc)
RPC_STATUS RPC_ENTRY RpcBindingCopy(RPC_BINDING_HANDLE SourceBinding, RPC_BINDING_HANDLE *DestinationBinding)
static LPSTR RPCRT4_strconcatA(LPSTR dst, LPCSTR src)
LPWSTR RPCRT4_strndupW(LPCWSTR src, INT slen)
RPC_STATUS WINAPI RpcStringBindingComposeA(RPC_CSTR ObjUuid, RPC_CSTR Protseq, RPC_CSTR NetworkAddr, RPC_CSTR Endpoint, RPC_CSTR Options, RPC_CSTR *StringBinding)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientW(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc)
RPC_STATUS WINAPI RpcBindingVectorFree(RPC_BINDING_VECTOR **BindingVector)
RPC_STATUS WINAPI RpcRevertToSelfEx(RPC_BINDING_HANDLE BindingHandle)
RPC_STATUS WINAPI I_RpcBindingInqTransportType(RPC_BINDING_HANDLE Binding, unsigned int *Type)
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)
RPC_STATUS WINAPI RpcBindingSetObject(RPC_BINDING_HANDLE Binding, UUID *ObjectUuid)
BOOL RpcQualityOfService_IsEqual(const RpcQualityOfService *qos1, const RpcQualityOfService *qos2)
ULONG RpcQualityOfService_Release(RpcQualityOfService *qos)
RPC_STATUS RPC_ENTRY RpcBindingReset(RPC_BINDING_HANDLE Binding)
RPC_STATUS WINAPI RpcBindingToStringBindingA(RPC_BINDING_HANDLE Binding, RPC_CSTR *StringBinding)
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)
RPC_STATUS WINAPI I_RpcBindingInqLocalClientPID(RPC_BINDING_HANDLE ClientBinding, ULONG *ClientPID)
static const unsigned char * string_binding_find_delimiter(const unsigned char *string_binding, unsigned char delim)
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)
static LPWSTR RPCRT4_strndupAtoW(LPCSTR src, INT slen)
RPC_STATUS WINAPI RpcBindingSetOption(RPC_BINDING_HANDLE BindingHandle, ULONG Option, ULONG_PTR OptionValue)
RPC_STATUS RPCRT4_OpenBinding(RpcBinding *Binding, RpcConnection **Connection, const RPC_SYNTAX_IDENTIFIER *TransferSyntax, const RPC_SYNTAX_IDENTIFIER *InterfaceId, BOOL *from_cache)
RPC_STATUS WINAPI RpcBindingFromStringBindingA(RPC_CSTR StringBinding, RPC_BINDING_HANDLE *Binding)
static RPC_STATUS RPCRT4_CompleteBindingA(RpcBinding *Binding, LPCSTR NetworkAddr, LPCSTR Endpoint, LPCSTR NetworkOptions)
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)
static RPC_STATUS RPCRT4_CompleteBindingW(RpcBinding *Binding, LPCWSTR NetworkAddr, LPCWSTR Endpoint, LPCWSTR NetworkOptions)
static RPC_CSTR unescape_string_binding_component(const unsigned char *string_binding, int len)
RPC_STATUS WINAPI RpcImpersonateClient(RPC_BINDING_HANDLE BindingHandle)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientA(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc)
static const char * rpcrt4_conn_get_name(const RpcConnection *Connection)
#define RPCRT4_strdupA(x)
static RPC_STATUS rpcrt4_conn_impersonate_client(RpcConnection *conn)
static RPC_STATUS rpcrt4_conn_revert_to_self(RpcConnection *conn)
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)
void RPCRT4_ReleaseConnection(RpcConnection *Connection) DECLSPEC_HIDDEN
#define RPCRT4_strdupW(x)
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
#define RPC_C_AUTHN_DEFAULT
I_RPC_HANDLE RPC_BINDING_HANDLE
unsigned short * RPC_WSTR
#define SEC_WINNT_AUTH_IDENTITY_UNICODE
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY
#define RPC_C_AUTHN_LEVEL_NONE
#define RPC_C_AUTHN_LEVEL_DEFAULT
#define RPC_C_AUTHN_INFO_TYPE_HTTP
#define RPC_C_AUTHN_WINNT
#define RPC_C_AUTHN_GSS_NEGOTIATE
#define RPC_C_AUTHN_GSS_KERBEROS
#define RPC_C_OPT_COOKIE_AUTH
#define TRANSPORT_TYPE_LPC
#define RPC_S_OUT_OF_MEMORY
RPC_STATUS WINAPI UuidCreateNil(UUID *Uuid)
RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, RPC_CSTR *StringUuid)
int WINAPI UuidIsNil(UUID *Uuid, RPC_STATUS *Status)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
RPC_STATUS WINAPI UuidFromStringA(RPC_CSTR s, UUID *uuid)
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
SECURITY_STATUS WINAPI EnumerateSecurityPackagesW(PULONG pcPackages, PSecPkgInfoW *ppPackageInfo)
SECURITY_STATUS WINAPI FreeContextBuffer(PVOID pv)
SECURITY_STATUS WINAPI EnumerateSecurityPackagesA(PULONG pcPackages, PSecPkgInfoA *ppPackageInfo)
SEC_WINNT_AUTH_IDENTITY_A * TransportCredentials
unsigned char * ServerCertificateSubject
ULONG NumberOfAuthnSchemes
ULONG AuthenticationTarget
ULONG NumberOfAuthnSchemes
ULONG AuthenticationTarget
SEC_WINNT_AUTH_IDENTITY_W * TransportCredentials
unsigned short * ServerCertificateSubject
ULONG AdditionalSecurityInfoType
union _RPC_SECURITY_QOS_V2_A::@3229 u
RPC_HTTP_TRANSPORT_CREDENTIALS_A * HttpCredentials
union _RPC_SECURITY_QOS_V2_W::@3228 u
RPC_HTTP_TRANSPORT_CREDENTIALS_W * HttpCredentials
ULONG AdditionalSecurityInfoType
RPC_AUTH_IDENTITY_HANDLE * identity
SEC_WINNT_AUTH_IDENTITY_W * nt_identity
LPWSTR server_principal_name
RPC_BLOCKING_FN BlockingFn
RpcQualityOfService * QOS
RPC_SECURITY_QOS_V2_W * qos
unsigned short * Password
_In_ ULONG _Out_ HANDLE * BindingHandle
static rfbScreenInfoPtr server
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
#define RPC_S_OUT_OF_RESOURCES
#define RPC_S_WRONG_KIND_OF_BINDING
#define RPC_S_INVALID_STRING_BINDING
#define RPC_S_BINDING_HAS_NO_AUTH
#define RPC_S_UNKNOWN_AUTHN_LEVEL
#define RPC_S_UNKNOWN_AUTHN_SERVICE
#define RPC_S_INTERNAL_ERROR
#define RPC_S_SEC_PKG_ERROR
#define RPC_S_INVALID_BINDING
#define RPC_S_UNKNOWN_AUTHZ_SERVICE
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)
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)
SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle phCredential)
_Must_inspect_result_ _In_ ULONG Flags