#ifndef _RPC_INTERNALS_H_ #define _RPC_INTERNALS_H_ #include #include static UINT64 RPC_CORE_RUNTIME_VERSION[] = { 0x600011DB04001LL, //6.1.7600.16385 0x600011DB1446ALL, //6.1.7601.17514 0x600011DB1471DLL, //6.1.7601.18205 0x600011DB14864LL, //6.1.7601.18532 0x600011DB149E0LL, //6.1.7601.18912 0x600011DB149F5LL, //6.1.7601.18933 0x600011DB149FBLL, //6.1.7601.18939 0x600011DB14ABFLL, //6.1.7601.19135 0x600011DB15B7BLL, //6.1.7601.23419 0x600011DB15CA2LL, //6.1.7601.23714 0x600011DB15D08LL, //6.1.7601.23816 0x600011DB15D6BLL, //6.1.7601.23915 0x600011DB15E35LL, //6.1.7601.24117 0x600011DB15EC4LL, //6.1.7601.24260 0x600011DB15EE3LL, //6.1.7601.24291 0x600011DB15EF4LL, //6.1.7601.24308 0x600011DB15F0FLL, //6.1.7601.24335 0x600011DB15F58LL, //6.1.7601.24408 0x600011DB15F79LL //6.1.7601.24441 }; #ifdef _WIN64 #define RPC_CORE_DESCRIPTION "Windows 7 SP1 64bits Wow64 runtime core" #define RPC_CORE_IS_WOW64 TRUE #define PTR_T *__ptr32 //WOW64!!! #define ULONG_PTR_T ULONG #else #define RPC_CORE_DESCRIPTION "Windows 7 SP1 32bits runtime core" #define RPC_CORE_IS_WOW64 FALSE #define ULONG_PTR_T ULONG_PTR #define PTR_T * #endif #include "../RpcInternalsCommon.h" #define RPC_ADDRESS_TYPE_DG 0x400000 #define RPC_ADDRESS_TYPE_LRPC 0x800000 #define RPC_ADDRESS_TYPE_OSF 0x800 #pragma pack(1) typedef struct _RPC_SERVER_T { MUTEX_T Mutex; ULONG _bIslistening; ULONG bIsListening; ULONG MinimumCallThreads; ULONG bWait; ULONG OutCalls; ULONG Unk1; ULONG InCalls; SIMPLE_DICT_T AddressDict; ULONG lAvailableCalls; SIMPLE_DICT_T _ProtSeqQueue; ULONG Unk2[4]; ULONG OutPackets; MUTEX_T Mutex2; ULONG MaxCalls; VOID PTR_T hEvent; ULONG Unk3[4]; SIMPLE_DICT_T InterfaceDict; ULONG __bIslistening; ULONG bIsMaxCalls1234; ULONG Unk4[6]; ULONG InPackets; RPC_FORWARD_FUNCTION PTR_T pRpcForwardFunction; ULONG Unk5[6]; SIMPLE_DICT_T AuthenInfoDict; }RPC_SERVER_T, PTR_T PRPC_SERVER_T; typedef struct _RPC_INTERFACE_T { PRPC_SERVER_T pRpcServer; ULONG Flags; ULONG EpMapperFlags; RPC_MGR_EPV PTR_T pMgrEpv; RPC_IF_CALLBACK_FN PTR_T IfSecurityCallbackFn; RPC_SERVER_INTERFACE_T RpcServerInterface; ULONG unk2[2]; BOOL bInterfaceSupportMultipleTransferSyntaxes; ULONG unk3; ULONG NbTypeManager; ULONG MaxRpcSize; UUID_VECTOR PTR_T pUuidVector; SIMPLE_DICT_T RpcInterfaceManagerDict; UCHAR Annotation[MAX_RPC_INTERFACE_ANNOTATION]; RPC_IF_CALLBACK_FN PTR_T IfCallbackFn; ULONG CurrentNullManagerCalls; ULONG CurrentAutoListenCalls; ULONG __Field_DC; ULONG unk5; ULONG SecurityCallbackInProgress; ULONG __Field_E8; VOID PTR_T pSecurityEntryHashTable; SIMPLE_DICT_T FwEpDict; ULONG field_10C; }RPC_INTERFACE_T, PTR_T PRPC_INTERFACE_T; typedef struct _RPC_ADDRESS_T { VOID PTR_T PTR_T pVTable; ULONG Magic; ULONG TypeOfAddress; ULONG ReferenceCounter; ULONG unk1; WCHAR PTR_T Name; WCHAR PTR_T Protocole; WCHAR PTR_T Address; ULONG bNamed; ULONG EpAddAddressFlag; SIMPLE_DICT_T __LRPCSassociationDict; ULONG unk3[2]; ULONG NbActiveCalls; ULONG unk4[4]; MUTEX_T Mutex; }RPC_ADDRESS_T; #pragma pack() #endif // _RPC_INTERNALS_H_