1 |
#ifndef _RPCDCEP_H |
2 |
#define _RPCDCEP_H |
3 |
#if __GNUC__ >=3 |
4 |
#pragma GCC system_header |
5 |
#endif |
6 |
|
7 |
#ifdef __cplusplus |
8 |
extern "C" { |
9 |
#endif |
10 |
#define RPC_NCA_FLAGS_DEFAULT 0 |
11 |
#define RPC_NCA_FLAGS_IDEMPOTENT 1 |
12 |
#define RPC_NCA_FLAGS_BROADCAST 2 |
13 |
#define RPC_NCA_FLAGS_MAYBE 4 |
14 |
#define RPCFLG_ASYNCHRONOUS 0x40000000 |
15 |
#define RPCFLG_INPUT_SYNCHRONOUS 0x20000000 |
16 |
#define RPC_FLAGS_VALID_BIT 0x8000 |
17 |
#define TRANSPORT_TYPE_CN 1 |
18 |
#define TRANSPORT_TYPE_DG 2 |
19 |
#define TRANSPORT_TYPE_LPC 4 |
20 |
#define TRANSPORT_TYPE_WMSG 8 |
21 |
|
22 |
typedef struct _RPC_VERSION { |
23 |
unsigned short MajorVersion; |
24 |
unsigned short MinorVersion; |
25 |
} RPC_VERSION; |
26 |
typedef struct _RPC_SYNTAX_IDENTIFIER { |
27 |
GUID SyntaxGUID; |
28 |
RPC_VERSION SyntaxVersion; |
29 |
} RPC_SYNTAX_IDENTIFIER, *PRPC_SYNTAX_IDENTIFIER; |
30 |
typedef struct _RPC_MESSAGE { |
31 |
HANDLE Handle; |
32 |
unsigned long DataRepresentation; |
33 |
void *Buffer; |
34 |
unsigned int BufferLength; |
35 |
unsigned int ProcNum; |
36 |
PRPC_SYNTAX_IDENTIFIER TransferSyntax; |
37 |
void *RpcInterfaceInformation; |
38 |
void *ReservedForRuntime; |
39 |
void *ManagerEpv; |
40 |
void *ImportContext; |
41 |
unsigned long RpcFlags; |
42 |
} RPC_MESSAGE,*PRPC_MESSAGE; |
43 |
typedef long __stdcall RPC_FORWARD_FUNCTION(GUID*,RPC_VERSION*,GUID*,unsigned char*,void**); |
44 |
typedef void(__stdcall *RPC_DISPATCH_FUNCTION) ( PRPC_MESSAGE Message); |
45 |
typedef struct { |
46 |
unsigned int DispatchTableCount; |
47 |
RPC_DISPATCH_FUNCTION *DispatchTable; |
48 |
int Reserved; |
49 |
} RPC_DISPATCH_TABLE,*PRPC_DISPATCH_TABLE; |
50 |
typedef struct _RPC_PROTSEQ_ENDPOINT { |
51 |
unsigned char *RpcProtocolSequence; |
52 |
unsigned char *Endpoint; |
53 |
} RPC_PROTSEQ_ENDPOINT,*PRPC_PROTSEQ_ENDPOINT; |
54 |
typedef struct _RPC_SERVER_INTERFACE { |
55 |
unsigned int Length; |
56 |
RPC_SYNTAX_IDENTIFIER InterfaceId; |
57 |
RPC_SYNTAX_IDENTIFIER TransferSyntax; |
58 |
PRPC_DISPATCH_TABLE DispatchTable; |
59 |
unsigned int RpcProtseqEndpointCount; |
60 |
PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; |
61 |
void *DefaultManagerEpv; |
62 |
void const *InterpreterInfo; |
63 |
} RPC_SERVER_INTERFACE,*PRPC_SERVER_INTERFACE; |
64 |
typedef struct _RPC_CLIENT_INTERFACE { |
65 |
unsigned int Length; |
66 |
RPC_SYNTAX_IDENTIFIER InterfaceId; |
67 |
RPC_SYNTAX_IDENTIFIER TransferSyntax; |
68 |
PRPC_DISPATCH_TABLE DispatchTable; |
69 |
unsigned int RpcProtseqEndpointCount; |
70 |
PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; |
71 |
unsigned long Reserved; |
72 |
void const *InterpreterInfo; |
73 |
} RPC_CLIENT_INTERFACE,*PRPC_CLIENT_INTERFACE; |
74 |
typedef void *I_RPC_MUTEX; |
75 |
typedef struct _RPC_TRANSFER_SYNTAX { |
76 |
GUID Uuid; |
77 |
unsigned short VersMajor; |
78 |
unsigned short VersMinor; |
79 |
} RPC_TRANSFER_SYNTAX; |
80 |
typedef RPC_STATUS (*RPC_BLOCKING_FN)(void*,void*,void*); |
81 |
|
82 |
long __stdcall I_RpcGetBuffer(RPC_MESSAGE*); |
83 |
long __stdcall I_RpcSendReceive(RPC_MESSAGE*); |
84 |
long __stdcall I_RpcSend(RPC_MESSAGE*); |
85 |
long __stdcall I_RpcFreeBuffer(RPC_MESSAGE*); |
86 |
void __stdcall I_RpcRequestMutex(I_RPC_MUTEX*); |
87 |
void __stdcall I_RpcClearMutex(I_RPC_MUTEX); |
88 |
void __stdcall I_RpcDeleteMutex(I_RPC_MUTEX); |
89 |
DECLARE_STDCALL_P(void *) I_RpcAllocate(unsigned int); |
90 |
void __stdcall I_RpcFree(void*); |
91 |
void __stdcall I_RpcPauseExecution(unsigned long); |
92 |
typedef void(__stdcall *PRPC_RUNDOWN) (void*); |
93 |
long __stdcall I_RpcMonitorAssociation(HANDLE,PRPC_RUNDOWN,void*); |
94 |
long __stdcall I_RpcStopMonitorAssociation(HANDLE); |
95 |
HANDLE __stdcall I_RpcGetCurrentCallHandle(void); |
96 |
long __stdcall I_RpcGetAssociationContext(void**); |
97 |
long __stdcall I_RpcSetAssociationContext(void*); |
98 |
#ifdef __RPC_NT__ |
99 |
long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned short*); |
100 |
long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE, unsigned short**); |
101 |
#else |
102 |
long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned char*); |
103 |
long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE,unsigned char**); |
104 |
#endif |
105 |
long __stdcall I_RpcBindingInqTransportType(HANDLE,unsigned int*); |
106 |
long __stdcall I_RpcIfInqTransferSyntaxes(HANDLE,RPC_TRANSFER_SYNTAX*,unsigned int,unsigned int*); |
107 |
long __stdcall I_UuidCreate(GUID*); |
108 |
long __stdcall I_RpcBindingCopy(HANDLE,HANDLE*); |
109 |
long __stdcall I_RpcBindingIsClientLocal(HANDLE,unsigned int*); |
110 |
void __stdcall I_RpcSsDontSerializeContext(void); |
111 |
long __stdcall I_RpcServerRegisterForwardFunction(RPC_FORWARD_FUNCTION*); |
112 |
long __stdcall I_RpcConnectionInqSockBuffSize(unsigned long*,unsigned long*); |
113 |
long __stdcall I_RpcConnectionSetSockBuffSize(unsigned long,unsigned long); |
114 |
long __stdcall I_RpcBindingSetAsync(HANDLE,RPC_BLOCKING_FN); |
115 |
long __stdcall I_RpcAsyncSendReceive(RPC_MESSAGE*,void*); |
116 |
long __stdcall I_RpcGetThreadWindowHandle(void**); |
117 |
long __stdcall I_RpcServerThreadPauseListening(void); |
118 |
long __stdcall I_RpcServerThreadContinueListening(void); |
119 |
long __stdcall I_RpcServerUnregisterEndpointA(unsigned char*,unsigned char*); |
120 |
long __stdcall I_RpcServerUnregisterEndpointW(unsigned short*,unsigned short*); |
121 |
#ifdef UNICODE |
122 |
#define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointW |
123 |
#else |
124 |
#define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointA |
125 |
#endif |
126 |
#ifdef __cplusplus |
127 |
} |
128 |
#endif |
129 |
#endif |