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;
608 const unsigned char *
close;
614 if (!
close)
goto fail;
628 if (endpoint_already_found)
goto fail;
629 if (Endpoint) *Endpoint = opt;
631 endpoint_already_found =
TRUE;
633 if (
strncmp((
const char *)opt, ep_opt,
strlen(ep_opt)) == 0) {
635 if (endpoint_already_found)
goto fail;
638 endpoint_already_found =
TRUE;
655 if (*
data)
goto fail;
657 else if (NetworkAddr)
679 static const WCHAR ep_opt[] = {
'e',
'n',
'd',
'p',
'o',
'i',
'n',
't',
'=',0};
683 ObjUuid, Protseq, NetworkAddr, Endpoint,
Options);
685 if (ObjUuid) *ObjUuid =
NULL;
686 if (Protseq) *Protseq =
NULL;
687 if (NetworkAddr) *NetworkAddr =
NULL;
688 if (Endpoint) *Endpoint =
NULL;
691 data = StringBinding;
724 if (!
close)
goto fail;
738 if (endpoint_already_found)
goto fail;
739 if (Endpoint) *Endpoint = opt;
741 endpoint_already_found =
TRUE;
745 if (endpoint_already_found)
goto fail;
748 endpoint_already_found =
TRUE;
765 if (*
data)
goto fail;
766 }
else if (NetworkAddr)
802 TRACE(
"(%p)\n", BindingVector);
803 for (
c=0;
c<(*BindingVector)->Count;
c++)
RpcBindingFree(&(*BindingVector)->BindingH[
c]);
805 *BindingVector =
NULL;
817 *ObjectUuid =
bind->ObjectUuid;
846 &NetworkAddr, &Endpoint, &
Options);
886 &NetworkAddr, &Endpoint, &
Options);
933 (
unsigned char*)
bind->Endpoint,
NULL, StringBinding);
977 bind->BlockingFn = BlockingFn;
993 TRACE(
"(%p, %p)\n", SourceBinding, DestinationBinding);
1005 if (SrcBinding->
Assoc) SrcBinding->
Assoc->refs++;
1011 DestBinding->
QOS = SrcBinding->
QOS;
1013 *DestinationBinding = DestBinding;
1126 AuthInfo->
cred = cred;
1207 if (AuthInfo1 == AuthInfo2)
1210 if (!AuthInfo1 || !AuthInfo2)
1273 if (!http_credentials_dst)
goto error;
1275 http_credentials_dst->
Flags = http_credentials_src->
Flags;
1284 if (!cred_dst)
goto error;
1394 TRACE(
"qos1 = { %d %d %d %d }, qos2 = { %d %d %d %d }\n",
1411 if (http_credentials1->
Flags != http_credentials2->
Flags)
1435 if (!identity1 || !identity2)
1485 TRACE(
"%p %p %p %p %p %p %u %p\n",
Binding, ServerPrincName, AuthnLevel,
1486 AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1489 AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1510 TRACE(
"%p %p %p %p %p %p %u %p\n",
Binding, ServerPrincName, AuthnLevel,
1511 AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
1517 FIXME(
"QOS not implemented\n");
1521 if (ServerPrincName)
1523 if (
bind->AuthInfo->server_principal_name)
1528 else *ServerPrincName =
NULL;
1530 if (AuthnLevel) *AuthnLevel =
bind->AuthInfo->AuthnLevel;
1531 if (AuthnSvc) *AuthnSvc =
bind->AuthInfo->AuthnSvc;
1532 if (AuthIdentity) *AuthIdentity =
bind->AuthInfo->identity;
1535 FIXME(
"authorization service not implemented\n");
1573 AuthnSvc, AuthzSvc, 0);
1585 AuthnSvc, AuthzSvc, 0);
1599 TRACE(
"%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1600 AuthnSvc, AuthzSvc,
Flags);
1603 AuthnLevel, AuthnSvc, AuthzSvc,
Flags);
1624 TRACE(
"%p %p %p %p %p %p 0x%x\n", ClientBinding, Privs, ServerPrincName, AuthnLevel,
1625 AuthnSvc, AuthzSvc,
Flags);
1630 bind = ClientBinding;
1634 ServerPrincName, AuthnLevel,
1635 AuthnSvc, AuthzSvc,
Flags);
1657 *ServerBinding = NewBinding;
1675 ULONG package_count;
1681 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1687 TRACE(
"SecurityQos { Version=%d, Capabilities=0x%x, IdentityTracking=%d, ImpersonationLevel=%d",
1689 if (SecurityQos->
Version >= 2)
1694 TRACE(
", { %p, 0x%x, %d, %d, %p(%u), %s }",
1730 FIXME(
"unknown AuthnLevel %u\n", AuthnLevel);
1737 FIXME(
"unsupported AuthzSvr %u\n", AuthzSvr);
1744 ERR(
"EnumerateSecurityPackagesA failed with error 0x%08x\n",
r);
1748 for (
i = 0;
i < package_count;
i++)
1749 if (packages[
i].wRPCID == AuthnSvc)
1752 if (
i == package_count)
1754 FIXME(
"unsupported AuthnSvc %u\n", AuthnSvc);
1759 TRACE(
"found package %s for service %u\n", packages[
i].
Name, AuthnSvc);
1768 AuthIdentity, &new_auth_info);
1775 bind->AuthInfo = new_auth_info;
1789 ERR(
"AcquireCredentialsHandleA failed with error 0x%08x\n",
r);
1806 ULONG package_count;
1812 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
1818 TRACE(
"SecurityQos { Version=%d, Capabilities=0x%x, IdentityTracking=%d, ImpersonationLevel=%d",
1820 if (SecurityQos->
Version >= 2)
1825 TRACE(
", { %p, 0x%x, %d, %d, %p(%u), %s }",
1861 FIXME(
"unknown AuthnLevel %u\n", AuthnLevel);
1868 FIXME(
"unsupported AuthzSvr %u\n", AuthzSvr);
1875 ERR(
"EnumerateSecurityPackagesW failed with error 0x%08x\n",
r);
1879 for (
i = 0;
i < package_count;
i++)
1880 if (packages[
i].wRPCID == AuthnSvc)
1883 if (
i == package_count)
1885 FIXME(
"unsupported AuthnSvc %u\n", AuthnSvc);
1899 AuthIdentity, &new_auth_info);
1906 bind->AuthInfo = new_auth_info;
1920 ERR(
"AcquireCredentialsHandleW failed with error 0x%08x\n",
r);
1933 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1945 AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
1973 FIXME(
"option %u not supported\n", Option);
1985 FIXME(
"%p %p: stub\n", ClientBinding, ClientPID);
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 WINAPI RpcBindingFromStringBindingW(RPC_WSTR StringBinding, RPC_BINDING_HANDLE *Binding)
static const WCHAR * string_binding_find_delimiterW(const WCHAR *string_binding, WCHAR delim)
SEC_WINNT_AUTH_IDENTITY_A * TransportCredentials
#define RPC_C_AUTHN_WINNT
ULONG RpcAssoc_Release(RpcAssoc *assoc)
RPC_STATUS WINAPI RpcBindingFree(RPC_BINDING_HANDLE *Binding)
#define SECPKG_CRED_OUTBOUND
static const char * rpcrt4_conn_get_name(const RpcConnection *Connection)
static rfbScreenInfoPtr server
SEC_WINNT_AUTH_IDENTITY_W * TransportCredentials
static RPC_CSTR unescape_string_binding_component(const unsigned char *string_binding, int len)
ULONG RpcAuthInfo_Release(RpcAuthInfo *AuthInfo)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define WideCharToMultiByte
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)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
ACPI_SIZE strlen(const char *String)
SECURITY_STATUS WINAPI FreeContextBuffer(PVOID pv)
INT WSAAPI bind(IN SOCKET s, IN CONST struct sockaddr *name, IN INT namelen)
unsigned short * Password
GLdouble GLdouble GLdouble r
static RPC_STATUS RPCRT4_CreateBindingA(RpcBinding **Binding, BOOL server, LPCSTR Protseq)
#define RPC_C_OPT_COOKIE_AUTH
static RPC_STATUS rpcrt4_conn_impersonate_client(RpcConnection *conn)
RPC_STATUS WINAPI RpcStringBindingComposeA(RPC_CSTR ObjUuid, RPC_CSTR Protseq, RPC_CSTR NetworkAddr, RPC_CSTR Endpoint, RPC_CSTR Options, RPC_CSTR *StringBinding)
union _RPC_SECURITY_QOS_V2_A::@3146 u
static RPC_STATUS RPCRT4_CreateBindingW(RpcBinding **Binding, BOOL server, LPCWSTR Protseq)
#define RPC_S_WRONG_KIND_OF_BINDING
#define RPC_C_AUTHN_LEVEL_DEFAULT
SECURITY_STATUS WINAPI EnumerateSecurityPackagesA(PULONG pcPackages, PSecPkgInfoA *ppPackageInfo)
_In_ ULONG _Out_ HANDLE * BindingHandle
SECURITY_STATUS WINAPI FreeCredentialsHandle(PCredHandle phCredential)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientA(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_CSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc)
RPC_HTTP_TRANSPORT_CREDENTIALS_A * HttpCredentials
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)
SECURITY_STATUS WINAPI EnumerateSecurityPackagesW(PULONG pcPackages, PSecPkgInfoW *ppPackageInfo)
RPC_STATUS WINAPI RpcStringBindingParseA(RPC_CSTR StringBinding, RPC_CSTR *ObjUuid, RPC_CSTR *Protseq, RPC_CSTR *NetworkAddr, RPC_CSTR *Endpoint, RPC_CSTR *Options)
RPC_HTTP_TRANSPORT_CREDENTIALS_W * HttpCredentials
ULONG NumberOfAuthnSchemes
void RPCRT4_AddRefBinding(RpcBinding *Binding)
#define RPC_C_AUTHN_DEFAULT
static RPC_STATUS RPCRT4_CompleteBindingA(RpcBinding *Binding, LPCSTR NetworkAddr, LPCSTR Endpoint, LPCSTR NetworkOptions)
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)
LPWSTR server_principal_name
unsigned short * RPC_WSTR
RPC_STATUS RPCRT4_GetAssociation(LPCSTR Protseq, LPCSTR NetworkAddr, LPCSTR Endpoint, LPCWSTR NetworkOptions, RpcAssoc **assoc_out)
static RPC_STATUS RPCRT4_AllocBinding(RpcBinding **Binding, BOOL server)
RPC_STATUS WINAPI RpcStringFreeA(RPC_CSTR *String)
RPC_STATUS RPC_ENTRY RpcBindingReset(RPC_BINDING_HANDLE Binding)
RPC_STATUS WINAPI RpcStringBindingComposeW(RPC_WSTR ObjUuid, RPC_WSTR Protseq, RPC_WSTR NetworkAddr, RPC_WSTR Endpoint, RPC_WSTR Options, RPC_WSTR *StringBinding)
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
unsigned short * ServerCertificateSubject
ULONG AuthenticationTarget
#define RPC_S_UNKNOWN_AUTHN_LEVEL
int WINAPI UuidIsNil(UUID *Uuid, RPC_STATUS *Status)
ULONG RpcQualityOfService_Release(RpcQualityOfService *qos)
ULONG AuthenticationTarget
RPC_STATUS WINAPI UuidToStringA(UUID *Uuid, RPC_CSTR *StringUuid)
void RPCRT4_strfree(LPSTR src)
RPC_STATUS WINAPI UuidFromStringW(RPC_WSTR s, UUID *uuid)
#define RPC_S_OUT_OF_MEMORY
WINE_DEFAULT_DEBUG_CHANNEL(rpc)
ULONG RpcAuthInfo_AddRef(RpcAuthInfo *AuthInfo)
RPC_STATUS RpcAuthInfo_Create(ULONG AuthnLevel, ULONG AuthnSvc, CredHandle cred, TimeStamp exp, ULONG cbMaxToken, RPC_AUTH_IDENTITY_HANDLE identity, RpcAuthInfo **ret)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthClientW(RPC_BINDING_HANDLE ClientBinding, RPC_AUTHZ_HANDLE *Privs, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, ULONG *AuthzSvc)
#define RPC_S_SEC_PKG_ERROR
static LPSTR RPCRT4_strconcatA(LPSTR dst, LPCSTR src)
#define RPC_S_INVALID_BINDING
RpcQualityOfService * QOS
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)
RPC_STATUS WINAPI RpcMgmtSetComTimeout(RPC_BINDING_HANDLE BindingHandle, unsigned int Timeout)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoW(RPC_BINDING_HANDLE Binding, RPC_WSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr)
static RPC_STATUS rpcrt4_conn_revert_to_self(RpcConnection *conn)
static BOOL has_nt_auth_identity(ULONG AuthnLevel)
BOOL RpcAuthInfo_IsEqual(const RpcAuthInfo *AuthInfo1, const RpcAuthInfo *AuthInfo2)
RPC_STATUS RPCRT4_OpenBinding(RpcBinding *Binding, RpcConnection **Connection, const RPC_SYNTAX_IDENTIFIER *TransferSyntax, const RPC_SYNTAX_IDENTIFIER *InterfaceId, BOOL *from_cache)
RPC_STATUS WINAPI RpcRevertToSelf(void)
static LPWSTR RPCRT4_strndupAtoW(LPCSTR src, INT slen)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingServerFromClient(RPC_BINDING_HANDLE ClientBinding, RPC_BINDING_HANDLE *ServerBinding)
RPC_STATUS RPCRT4_ReleaseBinding(RpcBinding *Binding)
static const unsigned char * string_binding_find_delimiter(const unsigned char *string_binding, unsigned char delim)
void RPCRT4_ReleaseConnection(RpcConnection *Connection) DECLSPEC_HIDDEN
void RpcAssoc_ReleaseIdleConnection(RpcAssoc *assoc, RpcConnection *Connection)
RPC_STATUS WINAPI RpcBindingToStringBindingA(RPC_BINDING_HANDLE Binding, RPC_CSTR *StringBinding)
#define RPC_C_AUTHN_LEVEL_PKT_PRIVACY
RPC_STATUS WINAPI RpcStringBindingParseW(RPC_WSTR StringBinding, RPC_WSTR *ObjUuid, RPC_WSTR *Protseq, RPC_WSTR *NetworkAddr, RPC_WSTR *Endpoint, RPC_WSTR *Options)
_In_ PWDFDEVICE_INIT _In_ PWDF_REMOVE_LOCK_OPTIONS Options
RPC_STATUS WINAPI RpcBindingToStringBindingW(RPC_BINDING_HANDLE Binding, RPC_WSTR *StringBinding)
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)
#define RPC_C_AUTHN_GSS_NEGOTIATE
_Must_inspect_result_ _In_ ULONG Flags
RPC_STATUS WINAPI I_RpcBindingInqLocalClientPID(RPC_BINDING_HANDLE ClientBinding, ULONG *ClientPID)
ULONG NumberOfAuthnSchemes
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
RPC_STATUS WINAPI RpcBindingFromStringBindingA(RPC_CSTR StringBinding, RPC_BINDING_HANDLE *Binding)
#define TRANSPORT_TYPE_LPC
#define RPC_C_AUTHN_GSS_KERBEROS
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)
#define SEC_WINNT_AUTH_IDENTITY_UNICODE
RPC_STATUS WINAPI RpcBindingVectorFree(RPC_BINDING_VECTOR **BindingVector)
static const struct d3drm_matrix identity
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
static RPC_WSTR escape_string_binding_componentW(RPC_WSTR string_binding, const WCHAR *component)
LPSTR RPCRT4_strndupA(LPCSTR src, INT slen)
union _RPC_SECURITY_QOS_V2_W::@3145 u
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
_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)
LPWSTR RPCRT4_strdupAtoW(LPCSTR src)
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)
#define InterlockedDecrement
RPC_BLOCKING_FN BlockingFn
#define RPC_S_UNKNOWN_AUTHN_SERVICE
RPC_STATUS RPCRT4_MakeBinding(RpcBinding **Binding, RpcConnection *Connection)
#define memcpy(s1, s2, n)
RPC_STATUS WINAPI RpcBindingInqObject(RPC_BINDING_HANDLE Binding, UUID *ObjectUuid)
RPC_SECURITY_QOS_V2_W * qos
#define RPC_S_INTERNAL_ERROR
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
RPC_STATUS WINAPI RpcBindingSetObject(RPC_BINDING_HANDLE Binding, UUID *ObjectUuid)
RPC_AUTH_IDENTITY_HANDLE * identity
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)
#define RPC_S_BINDING_HAS_NO_AUTH
static RPC_STATUS RpcQualityOfService_Create(const RPC_SECURITY_QOS *qos_src, BOOL unicode, RpcQualityOfService **qos_dst)
RPC_STATUS RPCRT4_ResolveBinding(RpcBinding *Binding, LPCSTR Endpoint)
SEC_WINNT_AUTH_IDENTITY_W * nt_identity
static unsigned __int64 next
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding *Binding, const UUID *ObjectUuid)
#define InterlockedIncrement
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
ULONG AdditionalSecurityInfoType
RPC_STATUS RPCRT4_CloseBinding(RpcBinding *Binding, RpcConnection *Connection)
#define RPCRT4_strdupA(x)
#define RPC_S_OUT_OF_RESOURCES
RPC_STATUS WINAPI RpcImpersonateClient(RPC_BINDING_HANDLE BindingHandle)
static RPC_CSTR escape_string_binding_component(RPC_CSTR string_binding, const unsigned char *component)
unsigned char * ServerCertificateSubject
RPC_STATUS WINAPI UuidCreateNil(UUID *Uuid)
#define MultiByteToWideChar
ULONG RpcQualityOfService_AddRef(RpcQualityOfService *qos)
BOOL RpcQualityOfService_IsEqual(const RpcQualityOfService *qos1, const RpcQualityOfService *qos2)
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)
#define RPC_S_UNKNOWN_AUTHZ_SERVICE
#define RPC_C_AUTHN_INFO_TYPE_HTTP
I_RPC_HANDLE RPC_BINDING_HANDLE
RPC_STATUS WINAPI UuidFromStringA(RPC_CSTR s, UUID *uuid)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingInqAuthInfoW(RPC_BINDING_HANDLE Binding, RPC_WSTR *ServerPrincName, ULONG *AuthnLevel, ULONG *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, ULONG *AuthzSvc)
static RPC_WSTR unescape_string_binding_componentW(const WCHAR *string_binding, int len)
LPWSTR RPCRT4_strndupW(LPCWSTR src, INT slen)
RPC_STATUS WINAPI I_RpcBindingInqTransportType(RPC_BINDING_HANDLE Binding, unsigned int *Type)
RPCRTAPI RPC_STATUS RPC_ENTRY RpcBindingSetAuthInfoA(RPC_BINDING_HANDLE Binding, RPC_CSTR ServerPrincName, ULONG AuthnLevel, ULONG AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, ULONG AuthzSvr)
#define RPC_S_INVALID_STRING_BINDING
#define RPCRT4_strdupW(x)
static SERVICE_STATUS status
static RPC_STATUS RPCRT4_CompleteBindingW(RpcBinding *Binding, LPCWSTR NetworkAddr, LPCWSTR Endpoint, LPCWSTR NetworkOptions)
RPC_STATUS WINAPI RpcRevertToSelfEx(RPC_BINDING_HANDLE BindingHandle)
#define RPC_C_AUTHN_LEVEL_NONE
#define HeapFree(x, y, z)
RPC_STATUS WINAPI RpcBindingSetOption(RPC_BINDING_HANDLE BindingHandle, ULONG Option, ULONG_PTR OptionValue)
static LPWSTR RPCRT4_strconcatW(LPWSTR dst, LPCWSTR src)
RPC_STATUS RPC_ENTRY RpcBindingCopy(RPC_BINDING_HANDLE SourceBinding, RPC_BINDING_HANDLE *DestinationBinding)
ULONG AdditionalSecurityInfoType
RPC_STATUS WINAPI I_RpcBindingSetAsync(RPC_BINDING_HANDLE Binding, RPC_BLOCKING_FN BlockingFn)
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)