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
;
63 } RPC_SERVER_INTERFACE
,*PRPC_SERVER_INTERFACE
;
64 typedef struct _RPC_CLIENT_INTERFACE
{
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
{
77 unsigned short VersMajor
;
78 unsigned short VersMinor
;
79 } RPC_TRANSFER_SYNTAX
;
80 typedef RPC_STATUS (*RPC_BLOCKING_FN
)(void*,void*,void*);
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*);
99 long __stdcall
I_RpcNsBindingSetEntryName(HANDLE
,unsigned long,unsigned short*);
100 long __stdcall
I_RpcBindingInqDynamicEndpoint(HANDLE
, unsigned short**);
102 long __stdcall
I_RpcNsBindingSetEntryName(HANDLE
,unsigned long,unsigned char*);
103 long __stdcall
I_RpcBindingInqDynamicEndpoint(HANDLE
,unsigned char**);
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*);
122 #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointW
124 #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointA