| #ifndef _RPCDCEP_H |
| #define _RPCDCEP_H |
| #if __GNUC__ >=3 |
| #pragma GCC system_header |
| #endif |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| #define RPC_NCA_FLAGS_DEFAULT 0 |
| #define RPC_NCA_FLAGS_IDEMPOTENT 1 |
| #define RPC_NCA_FLAGS_BROADCAST 2 |
| #define RPC_NCA_FLAGS_MAYBE 4 |
| #define RPCFLG_ASYNCHRONOUS 0x40000000 |
| #define RPCFLG_INPUT_SYNCHRONOUS 0x20000000 |
| #define RPC_FLAGS_VALID_BIT 0x8000 |
| #define TRANSPORT_TYPE_CN 1 |
| #define TRANSPORT_TYPE_DG 2 |
| #define TRANSPORT_TYPE_LPC 4 |
| #define TRANSPORT_TYPE_WMSG 8 |
| |
| typedef struct _RPC_VERSION { |
| unsigned short MajorVersion; |
| unsigned short MinorVersion; |
| } RPC_VERSION; |
| typedef struct _RPC_SYNTAX_IDENTIFIER { |
| GUID SyntaxGUID; |
| RPC_VERSION SyntaxVersion; |
| } RPC_SYNTAX_IDENTIFIER, *PRPC_SYNTAX_IDENTIFIER; |
| typedef struct _RPC_MESSAGE { |
| HANDLE Handle; |
| unsigned long DataRepresentation; |
| void *Buffer; |
| unsigned int BufferLength; |
| unsigned int ProcNum; |
| PRPC_SYNTAX_IDENTIFIER TransferSyntax; |
| void *RpcInterfaceInformation; |
| void *ReservedForRuntime; |
| void *ManagerEpv; |
| void *ImportContext; |
| unsigned long RpcFlags; |
| } RPC_MESSAGE,*PRPC_MESSAGE; |
| typedef long __stdcall RPC_FORWARD_FUNCTION(GUID*,RPC_VERSION*,GUID*,unsigned char*,void**); |
| typedef void(__stdcall *RPC_DISPATCH_FUNCTION) ( PRPC_MESSAGE Message); |
| typedef struct { |
| unsigned int DispatchTableCount; |
| RPC_DISPATCH_FUNCTION *DispatchTable; |
| int Reserved; |
| } RPC_DISPATCH_TABLE,*PRPC_DISPATCH_TABLE; |
| typedef struct _RPC_PROTSEQ_ENDPOINT { |
| unsigned char *RpcProtocolSequence; |
| unsigned char *Endpoint; |
| } RPC_PROTSEQ_ENDPOINT,*PRPC_PROTSEQ_ENDPOINT; |
| typedef struct _RPC_SERVER_INTERFACE { |
| unsigned int Length; |
| RPC_SYNTAX_IDENTIFIER InterfaceId; |
| RPC_SYNTAX_IDENTIFIER TransferSyntax; |
| PRPC_DISPATCH_TABLE DispatchTable; |
| unsigned int RpcProtseqEndpointCount; |
| PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; |
| void *DefaultManagerEpv; |
| void const *InterpreterInfo; |
| } RPC_SERVER_INTERFACE,*PRPC_SERVER_INTERFACE; |
| typedef struct _RPC_CLIENT_INTERFACE { |
| unsigned int Length; |
| RPC_SYNTAX_IDENTIFIER InterfaceId; |
| RPC_SYNTAX_IDENTIFIER TransferSyntax; |
| PRPC_DISPATCH_TABLE DispatchTable; |
| unsigned int RpcProtseqEndpointCount; |
| PRPC_PROTSEQ_ENDPOINT RpcProtseqEndpoint; |
| unsigned long Reserved; |
| void const *InterpreterInfo; |
| } RPC_CLIENT_INTERFACE,*PRPC_CLIENT_INTERFACE; |
| typedef void *I_RPC_MUTEX; |
| typedef struct _RPC_TRANSFER_SYNTAX { |
| GUID Uuid; |
| unsigned short VersMajor; |
| unsigned short VersMinor; |
| } RPC_TRANSFER_SYNTAX; |
| typedef RPC_STATUS (*RPC_BLOCKING_FN)(void*,void*,void*); |
| |
| long __stdcall I_RpcGetBuffer(RPC_MESSAGE*); |
| long __stdcall I_RpcSendReceive(RPC_MESSAGE*); |
| long __stdcall I_RpcSend(RPC_MESSAGE*); |
| long __stdcall I_RpcFreeBuffer(RPC_MESSAGE*); |
| void __stdcall I_RpcRequestMutex(I_RPC_MUTEX*); |
| void __stdcall I_RpcClearMutex(I_RPC_MUTEX); |
| void __stdcall I_RpcDeleteMutex(I_RPC_MUTEX); |
| DECLARE_STDCALL_P(void *) I_RpcAllocate(unsigned int); |
| void __stdcall I_RpcFree(void*); |
| void __stdcall I_RpcPauseExecution(unsigned long); |
| typedef void(__stdcall *PRPC_RUNDOWN) (void*); |
| long __stdcall I_RpcMonitorAssociation(HANDLE,PRPC_RUNDOWN,void*); |
| long __stdcall I_RpcStopMonitorAssociation(HANDLE); |
| HANDLE __stdcall I_RpcGetCurrentCallHandle(void); |
| long __stdcall I_RpcGetAssociationContext(void**); |
| long __stdcall I_RpcSetAssociationContext(void*); |
| #ifdef __RPC_NT__ |
| long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned short*); |
| long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE, unsigned short**); |
| #else |
| long __stdcall I_RpcNsBindingSetEntryName(HANDLE,unsigned long,unsigned char*); |
| long __stdcall I_RpcBindingInqDynamicEndpoint(HANDLE,unsigned char**); |
| #endif |
| long __stdcall I_RpcBindingInqTransportType(HANDLE,unsigned int*); |
| long __stdcall I_RpcIfInqTransferSyntaxes(HANDLE,RPC_TRANSFER_SYNTAX*,unsigned int,unsigned int*); |
| long __stdcall I_UuidCreate(GUID*); |
| long __stdcall I_RpcBindingCopy(HANDLE,HANDLE*); |
| long __stdcall I_RpcBindingIsClientLocal(HANDLE,unsigned int*); |
| void __stdcall I_RpcSsDontSerializeContext(void); |
| long __stdcall I_RpcServerRegisterForwardFunction(RPC_FORWARD_FUNCTION*); |
| long __stdcall I_RpcConnectionInqSockBuffSize(unsigned long*,unsigned long*); |
| long __stdcall I_RpcConnectionSetSockBuffSize(unsigned long,unsigned long); |
| long __stdcall I_RpcBindingSetAsync(HANDLE,RPC_BLOCKING_FN); |
| long __stdcall I_RpcAsyncSendReceive(RPC_MESSAGE*,void*); |
| long __stdcall I_RpcGetThreadWindowHandle(void**); |
| long __stdcall I_RpcServerThreadPauseListening(void); |
| long __stdcall I_RpcServerThreadContinueListening(void); |
| long __stdcall I_RpcServerUnregisterEndpointA(unsigned char*,unsigned char*); |
| long __stdcall I_RpcServerUnregisterEndpointW(unsigned short*,unsigned short*); |
| #ifdef UNICODE |
| #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointW |
| #else |
| #define I_RpcServerUnregisterEndpoint I_RpcServerUnregisterEndpointA |
| #endif |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif |