77 0, 0, { (
DWORD_PTR)(__FILE__
": server_cs") }
86 0, 0, { (
DWORD_PTR)(__FILE__
": listen_cs") }
95 0, 0, { (
DWORD_PTR)(__FILE__
": server_auth_info_cs") }
153 TRACE(
"returning %p for object %s, if_id { %d.%d %s }\n", cif,
173 unsigned int reject_reason;
206 unsigned char *auth_data,
ULONG auth_length,
RpcPktHdr **ack_response,
207 unsigned char **auth_data_out,
ULONG *auth_length_out)
215 for (
i = 0, ctxt_elem =
msg->Buffer;
216 i < hdr->num_elements;
219 if (((
char *)ctxt_elem - (
char *)
msg->Buffer) >
msg->BufferLength ||
222 ERR(
"inconsistent data in packet - packet length %d, num elements %d\n",
223 msg->BufferLength,
hdr->num_elements);
232 TRACE(
"packet size less than min size, or active interface syntax guid non-null\n");
243 i < hdr->num_elements;
259 TRACE(
"accepting bind request on connection %p for %s\n", conn,
273 TRACE(
"not accepting bind request on connection %p for %s - no transfer syntaxes supported\n",
281 TRACE(
"not accepting bind request on connection %p for %s - abstract syntax not supported\n",
312 auth_length, auth_data_out,
339 unsigned char *auth_data,
344 unsigned char *auth_data_out =
NULL;
345 ULONG auth_length_out = 0;
348 &response, &auth_data_out,
385 object_uuid = (
UUID*)(
hdr + 1);
400 msg->RpcInterfaceInformation = sif->
If;
403 if (object_uuid !=
NULL) {
408 msg->ProcNum =
hdr->opnum;
427 msg->DataRepresentation =
463 ERR(
"out of memory\n");
465 msg->RpcInterfaceInformation =
NULL;
478 unsigned char *auth_data,
484 !auth_length ||
msg->BufferLength != 0)
508 TRACE(
"got bind packet\n");
513 TRACE(
"got request packet\n");
518 TRACE(
"got auth3 packet\n");
522 FIXME(
"unhandled packet type %u\n",
hdr->common.ptype);
550 unsigned char *auth_data;
553 TRACE(
"(%p)\n", conn);
561 WARN(
"receive failed with error %x\n",
status);
566 switch (
hdr->common.ptype) {
568 TRACE(
"got bind packet\n");
575 TRACE(
"got request packet\n");
588 packet->auth_data = auth_data;
589 packet->auth_length = auth_length;
591 ERR(
"couldn't queue work item for worker thread, error was %d\n",
GetLastError());
600 TRACE(
"got auth3 packet\n");
606 FIXME(
"unhandled packet type %u\n",
hdr->common.ptype);
616 WARN(
"processing packet failed with error %u\n",
status);
630 ERR(
"failed to create thread, error=%08x\n",
err);
650 TRACE(
"(the_arg == ^%p)\n", the_arg);
653 objs = cps->
ops->get_wait_array(cps, objs, &
count);
659 set_ready_event =
FALSE;
663 res = cps->
ops->wait_for_new_connection(cps,
count, objs);
668 cps->
ops->free_wait_array(cps, objs);
672 set_ready_event =
TRUE;
675 TRACE(
"closing connections\n");
690 TRACE(
"waiting for active connections to close\n");
715 ps->
ops->signal_state_changed(ps);
869 TRACE(
"(*BindingVector == ^%p)\n", *BindingVector);
871 ERR(
"(BindingVector == NULL!!?)\n");
887 (*BindingVector)->Count =
count;
900 *BindingVector =
NULL;
959 (*ps)->MaxCalls = MaxCalls;
965 (*ps)->cs.DebugInfo->Spare[0] = (
DWORD_PTR)(__FILE__
": RpcServerProtseq.cs");
969 TRACE(
"new protseq %p created for %s\n", *ps, Protseq);
997 TRACE(
"found existing protseq object for %s\n", Protseq);
1019 TRACE(
"(%s,%u,%s,%p,{%u,%u,%u})\n",
debugstr_a((
const char *)Protseq),
1128 TRACE(
"(%p,%s,%p,%u,%u,%p)\n", IfSpec,
debugstr_guid(MgrTypeUuid), MgrEpv,
Flags, MaxCalls, IfCallbackFn);
1151 TRACE(
"(%p,%s,%p,%u,%u,%u,%p,%p)\n", IfSpec,
debugstr_guid(MgrTypeUuid), MgrEpv,
Flags, MaxCalls,
1155 FIXME(
"Unsupported SecurityDescriptor argument.\n");
1211 TRACE(
"(IfSpec == (RPC_IF_HANDLE)^%p (%s), MgrTypeUuid == %s, WaitForCallsToComplete == %u)\n",
1220 TRACE(
"unregistering cif %p\n", cif);
1224 if (WaitForCallsToComplete)
1255 FIXME(
"(IfSpec == (RPC_IF_HANDLE)^%p, MgrTypeUuid == %s, RundownContextHandles == %d): stub\n",
1302 prev->next =
map->next;
1313 map->Object = *ObjUuid;
1314 map->Type = *TypeUuid;
1338 ULONG package_count;
1344 ERR(
"EnumerateSecurityPackagesW failed with error 0x%08x\n", sec_status);
1348 for (
i = 0;
i < package_count;
i++)
1349 if (packages[
i].wRPCID == auth_type)
1352 if (
i == package_count)
1354 WARN(
"unsupported AuthnSvc %u\n", auth_type);
1360 *packages_buf = packages;
1361 *
ret = packages +
i;
1420 TRACE(
"(%s,%u,%p,%p)\n", ServerPrincName, AuthnSvc, GetKeyFn, Arg);
1422 if(ServerPrincName && !(principal_name =
RPCRT4_strdupAtoW((
const char*)ServerPrincName)))
1443 TRACE(
"(%s,%u,%p,%p)\n",
debugstr_w(ServerPrincName), AuthnSvc, GetKeyFn, Arg);
1486 TRACE(
"%u, %p\n", AuthnSvc, PrincName);
1503 FIXME(
"%u, %p\n", AuthnSvc, PrincName);
1524 TRACE(
"(%u,%u,%u)\n", MinimumCallThreads, MaxCalls, DontWait);
1553 TRACE(
"waiting for server calls to finish\n" );
1555 TRACE(
"done waiting\n" );
1598 TRACE(
"(Binding == (RPC_BINDING_HANDLE)^%p)\n",
Binding);
1601 FIXME(
"client-side invocation not implemented.\n");
1613 FIXME(
"(): stub\n");
1632 FIXME(
"(): stub\n" );
1668 stats->
Stats[0] = 0;
1669 *Statistics = stats;
1680 FIXME(
"(%p)\n", StatsVector);
1685 *StatsVector =
NULL;
1696 FIXME(
"(%p,%u,%p,%u,%p,%p): stub\n",
1697 Binding, InquiryType, IfId, VersOption, ObjectUuid, InquiryContext);
1736 FIXME(
"(0x%x): stub\n", ThreadStackSize);
static struct _test_info results[8]
int strcmp(const char *String1, const char *String2)
int memcmp(void *Buffer1, void *Buffer2, ACPI_SIZE Count)
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define HeapFree(x, y, z)
#define ERROR_ACCESS_DENIED
BOOL WINAPI QueueUserWorkItem(IN LPTHREAD_START_ROUTINE Function, IN PVOID Context, IN ULONG Flags)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
DWORD WINAPI GetThreadId(IN HANDLE Thread)
static const WCHAR Message[]
WDF_INTERRUPT_POLICY policy
GLuint GLuint GLsizei count
GLenum GLuint GLenum GLsizei const GLchar * buf
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
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
#define NCA_S_OP_RNG_ERROR
#define STATUS_ACCESS_VIOLATION
#define SECPKG_CRED_INBOUND
unsigned int RpcServerAssoc_ReleaseContextHandle(RpcAssoc *assoc, NDR_SCONTEXT SContext, BOOL release_lock)
RPC_STATUS RpcServerAssoc_GetAssociation(LPCSTR Protseq, LPCSTR NetworkAddr, LPCSTR Endpoint, LPCWSTR NetworkOptions, ULONG assoc_gid, RpcAssoc **assoc_out)
LPSTR RPCRT4_strdupWtoA(LPCWSTR src)
RPC_STATUS RPCRT4_MakeBinding(RpcBinding **Binding, RpcConnection *Connection)
void RPCRT4_strfree(LPSTR src)
LPWSTR RPCRT4_strdupAtoW(LPCSTR src)
RPC_STATUS RPCRT4_SetBindingObject(RpcBinding *Binding, const UUID *ObjectUuid)
static const char * rpcrt4_conn_get_name(const RpcConnection *Connection)
static void rpcrt4_conn_close_read(RpcConnection *connection)
RPC_STATUS RPCRT4_IsServerListening(const char *protseq, const char *endpoint) DECLSPEC_HIDDEN
RpcConnection * RPCRT4_GrabConnection(RpcConnection *conn) DECLSPEC_HIDDEN
void rpcrt4_conn_release_and_wait(RpcConnection *connection) DECLSPEC_HIDDEN
NDR_SCONTEXT RPCRT4_PopThreadContextHandle(void) DECLSPEC_HIDDEN
#define RPCRT4_strdupA(x)
RpcBinding * RPCRT4_GetThreadCurrentCallHandle(void) DECLSPEC_HIDDEN
void RPCRT4_ReleaseConnection(RpcConnection *Connection) DECLSPEC_HIDDEN
#define RPCRT4_strdupW(x)
void RPCRT4_SetThreadCurrentCallHandle(RpcBinding *Binding) DECLSPEC_HIDDEN
RPC_STATUS RPCRT4_CloseConnection(RpcConnection *Connection) DECLSPEC_HIDDEN
#define REASON_ABSTRACT_SYNTAX_NOT_SUPPORTED
#define REJECT_PROTOCOL_VERSION_NOT_SUPPORTED
#define REJECT_INVALID_CHECKSUM
#define REJECT_LOCAL_LIMIT_EXCEEDED
#define REASON_TRANSFER_SYNTAXES_NOT_SUPPORTED
#define REJECT_REASON_NOT_SPECIFIED
#define REJECT_UNKNOWN_AUTHN_SERVICE
#define RESULT_PROVIDER_REJECTION
#define RPC_MAX_PACKET_SIZE
#define REJECT_TEMPORARY_CONGESTION
#define RPC_FLG_OBJECT_UUID
#define RPC_MIN_PACKET_SIZE
RPC_STATUS RPCRT4_ReceiveWithAuth(RpcConnection *Connection, RpcPktHdr **Header, PRPC_MESSAGE pMsg, unsigned char **auth_data_out, ULONG *auth_length_out)
VOID RPCRT4_FreeHeader(RpcPktHdr *Header)
RpcPktHdr * RPCRT4_BuildFaultHeader(ULONG DataRepresentation, RPC_STATUS Status)
RpcPktHdr * RPCRT4_BuildBindAckHeader(ULONG DataRepresentation, unsigned short MaxTransmissionSize, unsigned short MaxReceiveSize, ULONG AssocGroupId, LPCSTR ServerAddress, unsigned char ResultCount, const RpcResult *Results)
NCA_STATUS RPC2NCA_STATUS(RPC_STATUS status)
RpcPktHdr * RPCRT4_BuildBindNackHeader(ULONG DataRepresentation, unsigned char RpcVersion, unsigned char RpcVersionMinor, unsigned short RejectReason)
RPC_STATUS RPCRT4_Send(RpcConnection *Connection, RpcPktHdr *Header, void *Buffer, unsigned int BufferLength)
RpcPktHdr * RPCRT4_BuildResponseHeader(ULONG DataRepresentation, ULONG BufferLength)
RPC_STATUS RPCRT4_ServerConnectionAuth(RpcConnection *conn, BOOL start, RpcAuthVerifier *auth_data_in, ULONG auth_length_in, unsigned char **auth_data_out, ULONG *auth_length_out)
RPC_STATUS RPCRT4_SendWithAuth(RpcConnection *Connection, RpcPktHdr *Header, void *Buffer, unsigned int BufferLength, const void *Auth, unsigned int AuthLength)
RPC_STATUS WINAPI RpcServerListen(UINT MinimumCallThreads, UINT MaxCalls, UINT DontWait)
static RPC_STATUS process_bind_packet_no_send(RpcConnection *conn, RpcPktBindHdr *hdr, RPC_MESSAGE *msg, unsigned char *auth_data, ULONG auth_length, RpcPktHdr **ack_response, unsigned char **auth_data_out, ULONG *auth_length_out)
RPC_STATUS WINAPI RpcServerRegisterIfEx(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv, UINT Flags, UINT MaxCalls, RPC_IF_CALLBACK_FN *IfCallbackFn)
RPC_STATUS WINAPI RpcMgmtEpEltInqBegin(RPC_BINDING_HANDLE Binding, ULONG InquiryType, RPC_IF_ID *IfId, ULONG VersOption, UUID *ObjectUuid, RPC_EP_INQ_HANDLE *InquiryContext)
static RPC_STATUS RPCRT4_start_listen_protseq(RpcServerProtseq *ps, BOOL auto_listen)
static struct list server_interfaces
RPC_STATUS WINAPI RpcMgmtEnableIdleCleanup(void)
RPC_STATUS WINAPI RpcServerRegisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv)
static RPC_STATUS find_security_package(ULONG auth_type, SecPkgInfoW **packages_buf, SecPkgInfoW **ret)
static struct list server_registered_auth_info
RPC_STATUS RPCRT4_ServerGetRegisteredAuthInfo(USHORT auth_type, CredHandle *cred, TimeStamp *exp, ULONG *max_token)
RPC_STATUS WINAPI RpcMgmtInqIfIds(RPC_BINDING_HANDLE Binding, RPC_IF_ID_VECTOR **IfIdVector)
RPC_STATUS WINAPI RpcServerUseProtseqW(RPC_WSTR Protseq, unsigned int MaxCalls, void *SecurityDescriptor)
RPC_STATUS WINAPI RpcMgmtWaitServerListen(void)
RPC_STATUS WINAPI RpcServerUseProtseqEpW(RPC_WSTR Protseq, UINT MaxCalls, RPC_WSTR Endpoint, LPVOID SecurityDescriptor)
RPC_STATUS WINAPI I_RpcServerStopListening(void)
RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameA(ULONG AuthnSvc, RPC_CSTR *PrincName)
RPC_STATUS WINAPI RpcServerUseProtseqEpExW(RPC_WSTR Protseq, UINT MaxCalls, RPC_WSTR Endpoint, LPVOID SecurityDescriptor, PRPC_POLICY lpPolicy)
RPC_STATUS WINAPI RpcServerUseProtseqEpA(RPC_CSTR Protseq, UINT MaxCalls, RPC_CSTR Endpoint, LPVOID SecurityDescriptor)
RPC_STATUS WINAPI RpcServerInqBindings(RPC_BINDING_VECTOR **BindingVector)
static RPC_STATUS process_auth3_packet(RpcConnection *conn, RpcPktCommonHdr *hdr, RPC_MESSAGE *msg, unsigned char *auth_data, ULONG auth_length)
static RpcServerInterface * RPCRT4_find_interface(UUID *object, const RPC_SYNTAX_IDENTIFIER *if_id, const RPC_SYNTAX_IDENTIFIER *transfer_syntax, BOOL check_object)
RPC_STATUS WINAPI RpcMgmtInqStats(RPC_BINDING_HANDLE Binding, RPC_STATS_VECTOR **Statistics)
static RpcObjTypeMap * RpcObjTypeMaps
RPC_STATUS WINAPI RpcServerRegisterAuthInfoW(RPC_WSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, LPVOID Arg)
void RPCRT4_new_client(RpcConnection *conn)
static CRITICAL_SECTION server_cs
static RPC_STATUS process_request_packet(RpcConnection *conn, RpcPktRequestHdr *hdr, RPC_MESSAGE *msg)
static CRITICAL_SECTION_DEBUG server_cs_debug
RPC_STATUS WINAPI RpcMgmtSetAuthorizationFn(RPC_MGMT_AUTHORIZATION_FN fn)
RPC_STATUS WINAPI RpcMgmtIsServerListening(RPC_BINDING_HANDLE Binding)
static RpcObjTypeMap * LookupObjTypeMap(UUID *ObjUuid)
RPC_STATUS WINAPI RpcObjectSetType(UUID *ObjUuid, UUID *TypeUuid)
RPC_BINDING_HANDLE WINAPI I_RpcGetCurrentCallHandle(void)
static RPC_STATUS RPCRT4_get_or_create_serverprotseq(UINT MaxCalls, const char *Protseq, RpcServerProtseq **ps)
static void RPCRT4_release_server_interface(RpcServerInterface *sif)
RPC_STATUS WINAPI RpcServerUseProtseqEpExA(RPC_CSTR Protseq, UINT MaxCalls, RPC_CSTR Endpoint, LPVOID SecurityDescriptor, PRPC_POLICY lpPolicy)
static DWORD CALLBACK RPCRT4_server_thread(LPVOID the_arg)
RPC_STATUS RPC_ENTRY RpcServerInqDefaultPrincNameW(ULONG AuthnSvc, RPC_WSTR *PrincName)
static RPC_STATUS alloc_serverprotoseq(UINT MaxCalls, const char *Protseq, RpcServerProtseq **ps)
static void RPCRT4_sync_with_server_thread(RpcServerProtseq *ps)
static CRITICAL_SECTION server_auth_info_cs
void RPCRT4_destroy_all_protseqs(void)
RPC_STATUS WINAPI RpcMgmtStatsVectorFree(RPC_STATS_VECTOR **StatsVector)
static RPC_STATUS process_bind_packet(RpcConnection *conn, RpcPktBindHdr *hdr, RPC_MESSAGE *msg, unsigned char *auth_data, ULONG auth_length)
static BOOL RPCRT4_protseq_is_endpoint_registered(RpcServerProtseq *protseq, const char *endpoint)
static RPC_STATUS RPCRT4_stop_listen(BOOL auto_listen)
struct _RpcObjTypeMap RpcObjTypeMap
static void destroy_serverprotoseq(RpcServerProtseq *ps)
static HANDLE listen_done_event
UINT WINAPI I_RpcWindowProc(void *hWnd, UINT Message, UINT wParam, ULONG lParam)
static DWORD CALLBACK RPCRT4_io_thread(LPVOID the_arg)
static UUID * LookupObjType(UUID *ObjUuid)
RPC_STATUS WINAPI RpcServerRegisterIf2(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv, UINT Flags, UINT MaxCalls, UINT MaxRpcSize, RPC_IF_CALLBACK_FN *IfCallbackFn)
static void RPCRT4_process_packet(RpcConnection *conn, RpcPktHdr *hdr, RPC_MESSAGE *msg, unsigned char *auth_data, ULONG auth_length)
static CRITICAL_SECTION_DEBUG listen_cs_debug
static struct list protseqs
struct _RpcPacket RpcPacket
RPC_STATUS WINAPI RpcServerUseProtseqA(RPC_CSTR Protseq, unsigned int MaxCalls, void *SecurityDescriptor)
RPC_STATUS WINAPI RpcServerRegisterIf3(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, RPC_MGR_EPV *MgrEpv, UINT Flags, UINT MaxCalls, UINT MaxRpcSize, RPC_IF_CALLBACK_FN *IfCallbackFn, void *SecurityDescriptor)
RPC_STATUS WINAPI I_RpcServerStartListening(HWND hWnd)
static CRITICAL_SECTION listen_cs
RPC_STATUS WINAPI RpcMgmtSetServerStackSize(ULONG ThreadStackSize)
static CRITICAL_SECTION_DEBUG server_auth_info_cs_debug
void RPCRT4_ServerFreeAllRegisteredAuthInfo(void)
static RpcPktHdr * handle_bind_error(RpcConnection *conn, RPC_STATUS error)
RPC_STATUS WINAPI RpcServerRegisterAuthInfoA(RPC_CSTR ServerPrincName, ULONG AuthnSvc, RPC_AUTH_KEY_RETRIEVAL_FN GetKeyFn, LPVOID Arg)
static DWORD CALLBACK RPCRT4_worker_thread(LPVOID the_arg)
static RPC_STATUS RPCRT4_use_protseq(RpcServerProtseq *ps, const char *endpoint)
RPC_STATUS WINAPI RpcServerUnregisterIf(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, UINT WaitForCallsToComplete)
RPC_STATUS WINAPI RpcMgmtStopServerListening(RPC_BINDING_HANDLE Binding)
RPC_STATUS WINAPI RpcServerUnregisterIfEx(RPC_IF_HANDLE IfSpec, UUID *MgrTypeUuid, int RundownContextHandles)
static RPC_STATUS RPCRT4_start_listen(BOOL auto_listen)
const struct protseq_ops * rpcrt4_get_protseq_ops(const char *protseq) DECLSPEC_HIDDEN
#define RPC_C_LISTEN_MAX_CALLS_DEFAULT
I_RPC_HANDLE RPC_BINDING_HANDLE
unsigned short * RPC_WSTR
void(__RPC_USER * RPC_AUTH_KEY_RETRIEVAL_FN)(void *, RPC_WSTR, ULONG, void **, RPC_STATUS *)
#define RPC_IF_AUTOLISTEN
RPC_STATUS RPC_ENTRY RPC_IF_CALLBACK_FN(RPC_IF_HANDLE InterfaceUuid, void *Context)
#define RPC_C_AUTHN_WINNT
int(__RPC_API * RPC_MGMT_AUTHORIZATION_FN)(RPC_BINDING_HANDLE, ULONG, RPC_STATUS *)
void(__RPC_STUB * RPC_DISPATCH_FUNCTION)(PRPC_MESSAGE Message)
#define NDR_LOCAL_DATA_REPRESENTATION
#define RPC_S_OUT_OF_MEMORY
int WINAPI UuidIsNil(UUID *Uuid, RPC_STATUS *Status)
RPC_STATUS WINAPI RpcStringFreeW(RPC_WSTR *String)
int WINAPI UuidEqual(UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status)
void WINAPI I_RpcFree(void *Object)
int WINAPI UuidCompare(UUID *Uuid1, UUID *Uuid2, RPC_STATUS *Status)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
#define GetExceptionCode()
SECURITY_STATUS WINAPI EnumerateSecurityPackagesW(PULONG pcPackages, PSecPkgInfoW *ppPackageInfo)
SECURITY_STATUS WINAPI FreeContextBuffer(PVOID pv)
BOOLEAN WINAPI GetUserNameExW(EXTENDED_NAME_FORMAT NameFormat, LPWSTR lpNameBuffer, PULONG nSize)
unsigned int DispatchTableCount
RPC_DISPATCH_FUNCTION * DispatchTable
RPC_SYNTAX_IDENTIFIER transfer_syntaxes[ANYSIZE_ARRAY]
RPC_SYNTAX_IDENTIFIER abstract_syntax
unsigned char num_syntaxes
DWORD_PTR Spare[8/sizeof(DWORD_PTR)]
LIST_ENTRY ProcessLocksList
PCRITICAL_SECTION_DEBUG DebugInfo
unsigned int RpcProtseqEndpointCount
RPC_SYNTAX_IDENTIFIER InterfaceId
RPC_MGR_EPV * DefaultManagerEpv
RPC_SYNTAX_IDENTIFIER TransferSyntax
PRPC_DISPATCH_TABLE DispatchTable
void const * InterpreterInfo
RPC_VERSION SyntaxVersion
unsigned short MajorVersion
unsigned short MinorVersion
RPC_SYNTAX_IDENTIFIER ActiveInterface
struct _RpcBinding * server_binding
USHORT MaxTransmissionSize
struct _RpcObjTypeMap * next
struct _RpcConnection * conn
unsigned char * auth_data
RPC_SERVER_INTERFACE * If
HANDLE CallsCompletedEvent
RPC_IF_CALLBACK_FN * IfCallbackFn
const struct protseq_ops * ops
HANDLE server_ready_event
RpcServerProtseq *(* alloc)(void)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateMutexW(IN LPSECURITY_ATTRIBUTES lpMutexAttributes OPTIONAL, IN BOOL bInitialOwner, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH ReleaseMutex(IN HANDLE hMutex)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
static GLenum _GLUfuncptr fn
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define RPC_S_SERVER_TOO_BUSY
#define RPC_S_PROTSEQ_NOT_SUPPORTED
#define RPC_S_OUT_OF_RESOURCES
#define RPC_S_INVALID_BOUND
#define RPC_S_WRONG_KIND_OF_BINDING
#define RPC_S_ALREADY_LISTENING
#define RPC_S_PROTOCOL_ERROR
#define RPC_S_NO_BINDINGS
#define RPC_S_NOT_LISTENING
#define RPC_S_UNKNOWN_AUTHN_SERVICE
#define RPC_S_INTERNAL_ERROR
#define RPC_S_ALREADY_REGISTERED
#define RPC_S_SEC_PKG_ERROR
#define RPC_S_INVALID_BINDING
#define RPC_S_INVALID_OBJECT
#define RPC_S_NO_PROTSEQS_REGISTERED
#define WT_EXECUTELONGFUNCTION
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)
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
_Must_inspect_result_ _In_ ULONG Flags