|
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 |