4 #pragma GCC system_header
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
22 typedef struct _RPC_VERSION
{
23 unsigned short MajorVersion
;
24 unsigned short MinorVersion
;
26 typedef struct _RPC_SYNTAX_IDENTIFIER
{
28 RPC_VERSION SyntaxVersion
;
29 } RPC_SYNTAX_IDENTIFIER
, *PRPC_SYNTAX_IDENTIFIER
;
30 typedef struct _RPC_MESSAGE
{
32 unsigned long DataRepresentation
;
34 unsigned int BufferLength
;
36 PRPC_SYNTAX_IDENTIFIER TransferSyntax
;
37 void *RpcInterfaceInformation
;
38 void *ReservedForRuntime
;
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
);
46 unsigned int DispatchTableCount
;
47 RPC_DISPATCH_FUNCTION
*DispatchTable
;
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
{
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
;
64 } RPC_SERVER_INTERFACE
,*PRPC_SERVER_INTERFACE
;
65 typedef struct _RPC_CLIENT_INTERFACE
{
67 RPC_SYNTAX_IDENTIFIER InterfaceId
;
68 RPC_SYNTAX_IDENTIFIER TransferSyntax
;
69 PRPC_DISPATCH_TABLE DispatchTable
;
70 unsigned int RpcProtseqEndpointCount
;
71 PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint
;
72 unsigned long Reserved
;
73 void const *InterpreterInfo
;
75 } RPC_CLIENT_INTERFACE
,*PRPC_CLIENT_INTERFACE
;
76 typedef void *I_RPC_MUTEX
;
77 typedef struct _RPC_TRANSFER_SYNTAX
{
79 unsigned short VersMajor
;
80 unsigned short VersMinor
;
81 } RPC_TRANSFER_SYNTAX
;
82 typedef RPC_STATUS (*RPC_BLOCKING_FN
)(void*,void*,void*);
84 long __stdcall
I_RpcGetBuffer(RPC_MESSAGE
*);
85 long __stdcall
I_RpcSendReceive(RPC_MESSAGE
*);
86 long __stdcall
I_RpcSend(RPC_MESSAGE
*);
87 long __stdcall
I_RpcFreeBuffer(RPC_MESSAGE
*);
88 void __stdcall
I_RpcRequestMutex(I_RPC_MUTEX
*);
89 void __stdcall
I_RpcClearMutex(I_RPC_MUTEX
);
90 void __stdcall
I_RpcDeleteMutex(I_RPC_MUTEX
);
91 DECLARE_STDCALL_P(void *) I_RpcAllocate(unsigned int);
92 void __stdcall
I_RpcFree(void*);
93 void __stdcall
I_RpcPauseExecution(unsigned long);
94 typedef void(__stdcall
*PRPC_RUNDOWN
) (void*);
95 long __stdcall
I_RpcMonitorAssociation(HANDLE
,PRPC_RUNDOWN
,void*);
96 long __stdcall
I_RpcStopMonitorAssociation(HANDLE
);
97 HANDLE __stdcall
I_RpcGetCurrentCallHandle(void);
98 long __stdcall
I_RpcGetAssociationContext(void**);
99 long __stdcall
I_RpcSetAssociationContext(void*);
101 long __stdcall
I_RpcNsBindingSetEntryName(HANDLE
,unsigned long,unsigned short*);
102 long __stdcall
I_RpcBindingInqDynamicEndpoint(HANDLE
, unsigned short**);
104 long __stdcall
I_RpcNsBindingSetEntryName(HANDLE
,unsigned long,unsigned char*);
105 long __stdcall
I_RpcBindingInqDynamicEndpoint(HANDLE
,unsigned char**);
107 long __stdcall
I_RpcBindingInqTransportType(HANDLE
,unsigned int*);
108 long __stdcall
I_RpcIfInqTransferSyntaxes(HANDLE
,RPC_TRANSFER_SYNTAX
*,unsigned int,unsigned int*);
109 long __stdcall
I_UuidCreate(GUID
*);
110 long __stdcall
I_RpcBindingCopy(HANDLE
,HANDLE
*);
111 long __stdcall
I_RpcBindingIsClientLocal(HANDLE
,unsigned int*);
112 void __stdcall
I_RpcSsDontSerializeContext(void);
113 long __stdcall
I_RpcServerRegisterForwardFunction(RPC_FORWARD_FUNCTION
*);
114 long __stdcall
I_RpcConnectionInqSockBuffSize(unsigned long*,unsigned long*);
115 long __stdcall
I_RpcConnectionSetSockBuffSize(unsigned long,unsigned long);
116 long __stdcall
I_RpcBindingSetAsync(HANDLE
,RPC_BLOCKING_FN
);
117 long __stdcall
I_RpcAsyncSendReceive(RPC_MESSAGE
*,void*);
118 long __stdcall
I_RpcGetThreadWindowHandle(void**);
119 long __stdcall
I_RpcServerThreadPauseListening(void);
120 long __stdcall
I_RpcServerThreadContinueListening(void);
121 long __stdcall
I_RpcServerUnregisterEndpointA(unsigned char*,unsigned char*);
122 long __stdcall
I_RpcServerUnregisterEndpointW(unsigned short*,unsigned short*);
124 #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointW
126 #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointA