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