Changeset 76067 in vbox for trunk/src/VBox/Main/include
- Timestamp:
- Dec 8, 2018 12:54:36 AM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 127307
- Location:
- trunk/src/VBox/Main/include
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/RpcChannelHook.h
r71716 r76067 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox COM Rpc Channel Hook definition 4 */3 * VirtualBox Main - RPC Channel Hook Hack, VBoxProxyStub. 4 */ 5 5 6 6 /* … … 21 21 #include <iprt/cdefs.h> 22 22 23 #ifdef RT_OS_WINDOWS 23 #ifndef RT_OS_WINDOWS 24 # error "Oops" 25 #endif 26 24 27 #include <iprt/win/windows.h> 25 28 #include <ObjIdl.h> 26 29 27 30 28 typedef void *PRPC_CHANNEL_HOOK; 31 RT_C_DECLS_BEGIN 29 32 30 / / {CEDA3E95-A46A-4C41-AA01-EFFD856E455C}33 /* {CEDA3E95-A46A-4C41-AA01-EFFD856E455C} */ 31 34 static const GUID RPC_CHANNEL_EXTENSION_GUID = 32 35 { 0xceda3e95, 0xa46a, 0x4c41,{ 0xaa, 0x1, 0xef, 0xfd, 0x85, 0x6e, 0x45, 0x5c } }; 33 36 34 RT_C_DECLS_BEGIN 35 // C wrapper for using in proxy 37 /** C wrapper for using in proxy (C code). */ 36 38 void SetupClientRpcChannelHook(void); 39 37 40 RT_C_DECLS_END 38 41 39 42 40 #if defined(__cplusplus)43 #ifdef __cplusplus 41 44 42 /* 43 * This is RPC channel hook implementation for registering VirtualBox API clients. 44 * This channel hook instantiated in COM client process by VBoxProxyStub 45 * We use it to catch a moment when a new VirtualBox object sucessfully instantiated to 46 * register new API client in a VBoxSDS clients list. 47 */ 45 /** 46 * This is RPC channel hook implementation for registering VirtualBox API clients. 47 * 48 * This channel hook instantiated in COM client process by VBoxProxyStub 49 * We use it to catch a moment when a new VirtualBox object sucessfully instantiated to 50 * register new API client in a VBoxSDS clients list. 51 */ 48 52 class CRpcChannelHook : public IChannelHook 49 53 { … … 52 56 53 57 /* IUnknown Interface methods */ 54 STDMETHOD IMP QueryInterface(REFIID riid, void **ppv);55 STDMETHOD IMP_(ULONG) AddRef(void);56 STDMETHOD IMP_(ULONG) Release(void);58 STDMETHOD(QueryInterface)(REFIID riid, void **ppv); 59 STDMETHOD_(ULONG, AddRef)(void); 60 STDMETHOD_(ULONG, Release)(void); 57 61 58 62 /* IChannelHook Interface methods */ 59 STDMETHOD IMP_(void) ClientGetSize(REFGUID uExtent, REFIID riid, ULONG *pDataSize);60 STDMETHOD IMP_(void) ClientFillBuffer(REFGUID uExtent, REFIID riid, ULONG *pDataSize, void *pDataBuffer);61 STDMETHOD IMP_(void) ClientNotify(REFGUID uExtent, REFIID riid, ULONG cbDataSize, void *pDataBuffer, DWORD lDataRep, HRESULT hrFault);63 STDMETHOD_(void, ClientGetSize)(REFGUID uExtent, REFIID riid, ULONG *pDataSize); 64 STDMETHOD_(void, ClientFillBuffer)(REFGUID uExtent, REFIID riid, ULONG *pDataSize, void *pDataBuffer); 65 STDMETHOD_(void, ClientNotify)(REFGUID uExtent, REFIID riid, ULONG cbDataSize, void *pDataBuffer, DWORD lDataRep, HRESULT hrFault); 62 66 63 STDMETHOD IMP_(void) ServerNotify(REFGUID uExtent, REFIID riid, ULONG cbDataSize, void *pDataBuffer, DWORD lDataRep);64 STDMETHOD IMP_(void) ServerGetSize(REFGUID uExtent, REFIID riid, HRESULT hrFault, ULONG *pDataSize);65 STDMETHOD IMP_(void) ServerFillBuffer(REFGUID uExtent, REFIID riid, ULONG *pDataSize, void *pDataBuffer, HRESULT hrFault);67 STDMETHOD_(void, ServerNotify)(REFGUID uExtent, REFIID riid, ULONG cbDataSize, void *pDataBuffer, DWORD lDataRep); 68 STDMETHOD_(void, ServerGetSize)(REFGUID uExtent, REFIID riid, HRESULT hrFault, ULONG *pDataSize); 69 STDMETHOD_(void, ServerFillBuffer)(REFGUID uExtent, REFIID riid, ULONG *pDataSize, void *pDataBuffer, HRESULT hrFault); 66 70 67 71 protected: … … 70 74 71 75 protected: 72 const GUID m_ChannelHookID;73 static volatile bool s_fChannelRegistered;74 static volatile bool s_fVBpoxSDSCalledOnce;75 static CRpcChannelHook s_RpcChannelHook;76 const GUID m_ChannelHookID; 77 static volatile bool s_fChannelRegistered; 78 static volatile bool s_fVBpoxSDSCalledOnce; 79 static CRpcChannelHook s_RpcChannelHook; 76 80 77 81 /* C wrapper*/ … … 79 83 }; 80 84 85 #endif /* __cplusplus */ 81 86 82 #endif // #if defined(__cplusplus) 83 84 85 #endif // #ifdef RT_OS_WINDOWS 86 87 #endif // ____H_RPCCHANNELHOOK 87 #endif -
trunk/src/VBox/Main/include/VirtualBoxSDSImpl.h
r76066 r76067 75 75 STDMETHOD(RegisterVBoxSVC)(IVBoxSVCRegistration *aVBoxSVC, LONG aPid, IUnknown **aExistingVirtualBox); 76 76 STDMETHOD(DeregisterVBoxSVC)(IVBoxSVCRegistration *aVBoxSVC, LONG aPid); 77 STDMETHOD(NotifyClientsFinished)(); /**< @todo r=bird: Internal within SDS! Make private. */78 77 /** @} */ 79 78
Note:
See TracChangeset
for help on using the changeset viewer.