112 TRACE(
"binding: %p\n", NewBinding);
125 TRACE(
"binding: %p\n", NewBinding);
136 TRACE(
"(RpcBinding == ^%p, NetworkAddr == %s, EndPoint == %s, NetworkOptions == %s)\n",
Binding,
147 if (Endpoint && Endpoint[0] !=
'\0')
164 TRACE(
"(RpcBinding == ^%p, NetworkAddr == %s, EndPoint == %s, NetworkOptions == %s)\n",
Binding,
175 if (Endpoint && Endpoint[0] !=
'\0')
191 TRACE(
"(RpcBinding == ^%p, EndPoint == \"%s\"\n",
Binding, Endpoint);
210 if (ObjectUuid)
Binding->ObjectUuid = *ObjectUuid;
218 TRACE(
"(RpcBinding == ^%p, Connection == ^%p)\n",
Binding, Connection);
226 TRACE(
"binding: %p\n", NewBinding);
267 *Connection =
Binding->FromConn;
270 ERR(
"no connection in binding\n");
282 if (
Binding->FromConn != Connection)
322 const unsigned char *component)
324 for (; *component; component++) {
325 switch (*component) {
331 *string_binding++ =
'\\';
332 *string_binding++ = *component;
335 *string_binding++ = *component;
339 return string_binding;
343 const WCHAR *component)
345 for (; *component; component++) {
346 switch (*component) {
352 *string_binding++ =
'\\';
353 *string_binding++ = *component;
356 *string_binding++ = *component;
360 return string_binding;
364 const unsigned char *string_binding,
unsigned char delim)
366 const unsigned char *
next;
394 const unsigned char *string_binding,
int len)
398 if (
len == -1)
len =
strlen((
const char *)string_binding);
400 component =
malloc((
len + 1) *
sizeof(*component));
401 if (!component)
return NULL;
402 for (
p = component;
len > 0; string_binding++,
len--) {
403 if (*string_binding ==
'\\') {
406 *
p++ = *string_binding;
408 *
p++ = *string_binding;
416 const WCHAR *string_binding,
int len)
422 component =
malloc((
len + 1) *
sizeof(*component));
423 if (!component)
return NULL;
424 for (
p = component;
len > 0; string_binding++,
len--) {
425 if (*string_binding ==
'\\') {
428 *
p++ = *string_binding;
430 *
p++ = *string_binding;
447 TRACE(
"(%s,%s,%s,%s,%s,%p)\n",
453 if (ObjUuid && *ObjUuid)
len +=
strlen((
char*)ObjUuid) * 2 + 1;
454 if (Protseq && *Protseq)
len +=
strlen((
char*)Protseq) * 2 + 1;
455 if (NetworkAddr && *NetworkAddr)
len +=
strlen((
char*)NetworkAddr) * 2;
456 if (Endpoint && *Endpoint)
len +=
strlen((
char*)Endpoint) * 2 + 2;
460 *StringBinding =
data;
462 if (ObjUuid && *ObjUuid) {
466 if (Protseq && *Protseq) {
470 if (NetworkAddr && *NetworkAddr)
473 if ((Endpoint && *Endpoint) ||
476 if (Endpoint && *Endpoint) {
500 TRACE(
"(%s,%s,%s,%s,%s,%p)\n",
506 if (ObjUuid && *ObjUuid)
len +=
lstrlenW(ObjUuid) * 2 + 1;
507 if (Protseq && *Protseq)
len +=
lstrlenW(Protseq) * 2 + 1;
508 if (NetworkAddr && *NetworkAddr)
len +=
lstrlenW(NetworkAddr) * 2;
509 if (Endpoint && *Endpoint)
len +=
lstrlenW(Endpoint) * 2 + 2;
513 *StringBinding =
data;
515 if (ObjUuid && *ObjUuid) {
519 if (Protseq && *Protseq) {
523 if (NetworkAddr && *NetworkAddr) {
526 if ((Endpoint && *Endpoint) ||
529 if (Endpoint && *Endpoint) {
552 static const char ep_opt[] =
"endpoint=";
556 ObjUuid, Protseq, NetworkAddr, Endpoint,
Options);
558 if (ObjUuid) *ObjUuid =
NULL;
559 if (Protseq) *Protseq =
NULL;
560 if (NetworkAddr) *NetworkAddr =
NULL;
561 if (Endpoint) *Endpoint =
NULL;
564 data = StringBinding;
593 const unsigned char *
close;
599 if (!
close)
goto fail;
613 if (endpoint_already_found)
goto fail;
614 if (Endpoint) *Endpoint = opt;
616 endpoint_already_found =
TRUE;
618 if (
strncmp((
const char *)opt, ep_opt,
strlen(ep_opt)) == 0) {
620 if (endpoint_already_found)
goto fail;
623 endpoint_already_found =
TRUE;
640 if (*
data)
goto fail;
642 else if (NetworkAddr)
667 ObjUuid, Protseq, NetworkAddr, Endpoint,
Options);
669 if (ObjUuid) *ObjUuid =
NULL;
670 if (Protseq) *Protseq =
NULL;
671 if (NetworkAddr) *NetworkAddr =
NULL;
672 if (Endpoint) *Endpoint =
NULL;
675 data = StringBinding;
710 if (!
close)
goto fail;
724 if (endpoint_already_found)
goto fail;
725 if (Endpoint) *Endpoint = opt;
727 endpoint_already_found =
TRUE;
731 if (endpoint_already_found)
goto fail;
734 endpoint_already_found =
TRUE;
751 if (*
data)
goto fail;
752 }
else if (NetworkAddr)
788 TRACE(
"(%p)\n", BindingVector);
789 for (
c=0;
c<(*BindingVector)->Count;
c++)
RpcBindingFree(&(*BindingVector)->BindingH[
c]);
790 free(*BindingVector);
791 *BindingVector =
NULL;
803 *ObjectUuid =
bind->ObjectUuid;
832 &NetworkAddr, &Endpoint, &
Options);
872 &NetworkAddr, &Endpoint, &
Options);
919 (
unsigned char*)
bind->Endpoint,
NULL, StringBinding);
963 bind->BlockingFn = BlockingFn;
979 TRACE(
"(%p, %p)\n", SourceBinding, DestinationBinding);
991 if (SrcBinding->
Assoc) SrcBinding->
Assoc->refs++;
997 DestBinding->
QOS = SrcBinding->
QOS;
999 *DestinationBinding = DestBinding;
1112 AuthInfo->
cred = cred;
1193 if (AuthInfo1 == AuthInfo2)
1196 if (!AuthInfo1 || !AuthInfo2)
1257 http_credentials_dst =
malloc(
sizeof(*http_credentials_dst));
1259 if (!http_credentials_dst)
goto error;
1261 http_credentials_dst->
Flags = http_credentials_src->
Flags;
1270 if (!cred_dst)
goto error;
1380 TRACE(
"qos1 = { %ld %ld %ld %ld }, qos2 = { %ld %ld %ld %ld }\n",
1397 if (http_credentials1->
Flags != http_credentials2->
Flags)
1421 if (!identity1 || !identity2)
1471 TRACE(
"%p %p %p %p %p %p %lu %p\n",
Binding, ServerPrincName, AuthnLevel,
1472 AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1475 AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1496 TRACE(
"%p %p %p %p %p %p %lu %p\n",
Binding, ServerPrincName, AuthnLevel,
1497 AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1503 FIXME(
"QOS not implemented\n");
1507 if (ServerPrincName)
1509 if (
bind->AuthInfo->server_principal_name)
1511 *ServerPrincName =
wcsdup(
bind->AuthInfo->server_principal_name);
1514 else *ServerPrincName =
NULL;
1516 if (AuthnLevel) *AuthnLevel =
bind->AuthInfo->AuthnLevel;
1517 if (AuthnSvc) *AuthnSvc =
bind->AuthInfo->AuthnSvc;
1518 if (AuthIdentity) *AuthIdentity =
bind->AuthInfo->identity;
1521 FIXME(
"authorization service not implemented\n");
1559 AuthnSvc, AuthzSvc, 0);
1571 AuthnSvc, AuthzSvc, 0);
1585 TRACE(
"%p %p %p %p %p %p 0x%lx\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1586 AuthnSvc, AuthzSvc,
Flags);
1589 AuthnLevel, AuthnSvc, AuthzSvc,
Flags);
1610 TRACE(
"%p %p %p %p %p %p 0x%lx\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1611 AuthnSvc, AuthzSvc,
Flags);
1616 bind = ClientBinding;
1620 ServerPrincName, AuthnLevel,
1621 AuthnSvc, AuthzSvc,
Flags);
1643 *ServerBinding = NewBinding;
1661 ULONG package_count;
1667 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1673 TRACE(
"SecurityQos { Version=%ld, Capabilities=0x%lx, IdentityTracking=%ld, ImpersonationLevel=%ld",
1675 if (SecurityQos->
Version >= 2)
1680 TRACE(
", { %p, 0x%lx, %ld, %ld, %p(%lu), %s }",
1716 FIXME(
"unknown AuthnLevel %lu\n", AuthnLevel);
1723 FIXME(
"unsupported AuthzSvr %lu\n", AuthzSvr);
1730 ERR(
"EnumerateSecurityPackagesA failed with error 0x%08lx\n",
r);
1734 for (
i = 0;
i < package_count;
i++)
1735 if (packages[
i].wRPCID == AuthnSvc)
1738 if (
i == package_count)
1740 FIXME(
"unsupported AuthnSvc %lu\n", AuthnSvc);
1745 TRACE(
"found package %s for service %lu\n", packages[
i].
Name, AuthnSvc);
1754 AuthIdentity, &new_auth_info);
1761 bind->AuthInfo = new_auth_info;
1775 ERR(
"AcquireCredentialsHandleA failed with error 0x%08lx\n",
r);
1792 ULONG package_count;
1798 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1804 TRACE(
"SecurityQos { Version=%ld, Capabilities=0x%lx, IdentityTracking=%ld, ImpersonationLevel=%ld",
1806 if (SecurityQos->
Version >= 2)
1811 TRACE(
", { %p, 0x%lx, %ld, %ld, %p(%lu), %s }",
1847 FIXME(
"unknown AuthnLevel %lu\n", AuthnLevel);
1854 FIXME(
"unsupported AuthzSvr %lu\n", AuthzSvr);
1861 ERR(
"EnumerateSecurityPackagesW failed with error 0x%08lx\n",
r);
1865 for (
i = 0;
i < package_count;
i++)
1866 if (packages[
i].wRPCID == AuthnSvc)
1869 if (
i == package_count)
1871 FIXME(
"unsupported AuthnSvc %lu\n", AuthnSvc);
1885 AuthIdentity, &new_auth_info);
1892 bind->AuthInfo = new_auth_info;
1906 ERR(
"AcquireCredentialsHandleW failed with error 0x%08lx\n",
r);
1919 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1931 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1959 FIXME(
"option %lu not supported\n", Option);
1974 TRACE(
"%p %p\n", ClientBinding, ClientPID);
1980 connection =
binding->FromConn;
1981 if (!connection->
ops->inquire_client_pid)
1984 return connection->
ops->inquire_client_pid(connection, 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 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)
static RPC_BINDING_HANDLE binding
#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)
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)
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)
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)
RpcBinding * RPCRT4_GetThreadCurrentCallHandle(void)
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)
_Check_return_ _CRTIMP char *__cdecl strdup(_In_opt_z_ const char *_Src)
_Check_return_ _CRTIMP wchar_t *__cdecl wcsdup(_In_z_ const wchar_t *_Str)
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::@3415 u
RPC_HTTP_TRANSPORT_CREDENTIALS_A * HttpCredentials
union _RPC_SECURITY_QOS_V2_W::@3414 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
const struct connection_ops * ops
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_NO_CALL_ACTIVE
#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