ReactOS  0.4.15-dev-489-g75a0787
rpc_server.h File Reference
#include "rpc_binding.h"
#include "wine/list.h"
Include dependency graph for rpc_server.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _RpcServerProtseq
 
struct  protseq_ops
 
struct  _RpcServerInterface
 

Typedefs

typedef struct _RpcServerProtseq RpcServerProtseq
 
typedef struct _RpcServerInterface RpcServerInterface
 

Functions

void RPCRT4_new_client (RpcConnection *conn) DECLSPEC_HIDDEN
 
const struct protseq_opsrpcrt4_get_protseq_ops (const char *protseq) DECLSPEC_HIDDEN
 
void RPCRT4_destroy_all_protseqs (void) DECLSPEC_HIDDEN
 
void RPCRT4_ServerFreeAllRegisteredAuthInfo (void) DECLSPEC_HIDDEN
 

Typedef Documentation

◆ RpcServerInterface

◆ RpcServerProtseq

Function Documentation

◆ RPCRT4_destroy_all_protseqs()

void RPCRT4_destroy_all_protseqs ( void  )

Definition at line 1094 of file rpc_server.c.

1095 {
1096  RpcServerProtseq *cps, *cursor2;
1097 
1098  if (listen_count != 0)
1099  std_listen = FALSE;
1100 
1103  {
1104  if (listen_count != 0)
1107  }
1111 }
static struct list protseqs
Definition: rpc_server.c:68
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static CRITICAL_SECTION server_cs
Definition: rpc_server.c:72
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
static void RPCRT4_sync_with_server_thread(RpcServerProtseq *ps)
Definition: rpc_server.c:708
static LONG listen_count
Definition: rpc_server.c:102
uint32_t entry
Definition: isohybrid.c:63
static CRITICAL_SECTION listen_cs
Definition: rpc_server.c:81
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204
static BOOL std_listen
Definition: rpc_server.c:100
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
static void destroy_serverprotoseq(RpcServerProtseq *ps)
Definition: rpc_server.c:975

Referenced by DllMain().

◆ rpcrt4_get_protseq_ops()

const struct protseq_ops* rpcrt4_get_protseq_ops ( const char protseq)

Definition at line 3338 of file rpc_transport.c.

3339 {
3340  unsigned int i;
3341  for(i = 0; i < ARRAY_SIZE(protseq_list); i++)
3342  if (!strcmp(protseq_list[i].name, protseq))
3343  return &protseq_list[i];
3344  return NULL;
3345 }
static const struct protseq_ops protseq_list[]
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
smooth NULL
Definition: ftsmooth.c:416
#define ARRAY_SIZE(a)
Definition: main.h:24
Definition: name.c:38
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469

Referenced by alloc_serverprotoseq().

◆ RPCRT4_new_client()

void RPCRT4_new_client ( RpcConnection conn)

Definition at line 625 of file rpc_server.c.

626 {
628  if (!thread) {
629  DWORD err = GetLastError();
630  ERR("failed to create thread, error=%08x\n", err);
632  }
633  /* we could set conn->thread, but then we'd have to make the io_thread wait
634  * for that, otherwise the thread might finish, destroy the connection, and
635  * free the memory we'd write to before we did, causing crashes and stuff -
636  * so let's implement that later, when we really need conn->thread */
637 
638  CloseHandle( thread );
639 }
#define CloseHandle
Definition: compat.h:407
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
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)
Definition: thread.c:136
smooth NULL
Definition: ftsmooth.c:416
void RPCRT4_ReleaseConnection(RpcConnection *Connection) DECLSPEC_HIDDEN
unsigned long DWORD
Definition: ntddk_ex.h:95
static HANDLE thread
Definition: service.c:33
#define err(...)
#define ERR(fmt,...)
Definition: debug.h:110
static DWORD CALLBACK RPCRT4_io_thread(LPVOID the_arg)
Definition: rpc_server.c:543

Referenced by rpcrt4_protseq_np_wait_for_new_connection(), and rpcrt4_protseq_sock_wait_for_new_connection().

◆ RPCRT4_ServerFreeAllRegisteredAuthInfo()

void RPCRT4_ServerFreeAllRegisteredAuthInfo ( void  )

Definition at line 1396 of file rpc_server.c.

1397 {
1398  struct rpc_server_registered_auth_info *auth_info, *cursor2;
1399 
1402  {
1403  HeapFree(GetProcessHeap(), 0, auth_info->package_name);
1404  HeapFree(GetProcessHeap(), 0, auth_info->principal);
1405  HeapFree(GetProcessHeap(), 0, auth_info);
1406  }
1409 }
static CRITICAL_SECTION server_auth_info_cs
Definition: rpc_server.c:90
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
static struct list server_registered_auth_info
Definition: rpc_server.c:70
#define GetProcessHeap()
Definition: compat.h:404
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
uint32_t entry
Definition: isohybrid.c:63
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define HeapFree(x, y, z)
Definition: compat.h:403

Referenced by DllMain().