Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4084 lines
115 KiB

  1. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  2. /* File created by MIDL compiler version 6.00.0361 */
  3. /* at Mon Sep 09 14:10:36 2002
  4. */
  5. /* Compiler settings for exdi.idl:
  6. Oicf, W1, Zp8, env=Win32 (32b run)
  7. protocol : dce , ms_ext, c_ext, robust
  8. error checks: allocation ref bounds_check enum stub_data
  9. VC __declspec() decoration level:
  10. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  11. DECLSPEC_UUID(), MIDL_INTERFACE()
  12. */
  13. //@@MIDL_FILE_HEADING( )
  14. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  15. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  16. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  17. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  18. #endif
  19. #include "rpc.h"
  20. #include "rpcndr.h"
  21. #ifndef __RPCNDR_H_VERSION__
  22. #error this stub requires an updated version of <rpcndr.h>
  23. #endif // __RPCNDR_H_VERSION__
  24. #ifndef COM_NO_WINDOWS_H
  25. #include "windows.h"
  26. #include "ole2.h"
  27. #endif /*COM_NO_WINDOWS_H*/
  28. #ifndef __exdi_h__
  29. #define __exdi_h__
  30. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  31. #pragma once
  32. #endif
  33. /* Forward Declarations */
  34. #ifndef __IeXdiServer_FWD_DEFINED__
  35. #define __IeXdiServer_FWD_DEFINED__
  36. typedef interface IeXdiServer IeXdiServer;
  37. #endif /* __IeXdiServer_FWD_DEFINED__ */
  38. #ifndef __IeXdiCodeBreakpoint_FWD_DEFINED__
  39. #define __IeXdiCodeBreakpoint_FWD_DEFINED__
  40. typedef interface IeXdiCodeBreakpoint IeXdiCodeBreakpoint;
  41. #endif /* __IeXdiCodeBreakpoint_FWD_DEFINED__ */
  42. #ifndef __IeXdiDataBreakpoint_FWD_DEFINED__
  43. #define __IeXdiDataBreakpoint_FWD_DEFINED__
  44. typedef interface IeXdiDataBreakpoint IeXdiDataBreakpoint;
  45. #endif /* __IeXdiDataBreakpoint_FWD_DEFINED__ */
  46. #ifndef __IeXdiEnumCodeBreakpoint_FWD_DEFINED__
  47. #define __IeXdiEnumCodeBreakpoint_FWD_DEFINED__
  48. typedef interface IeXdiEnumCodeBreakpoint IeXdiEnumCodeBreakpoint;
  49. #endif /* __IeXdiEnumCodeBreakpoint_FWD_DEFINED__ */
  50. #ifndef __IeXdiEnumDataBreakpoint_FWD_DEFINED__
  51. #define __IeXdiEnumDataBreakpoint_FWD_DEFINED__
  52. typedef interface IeXdiEnumDataBreakpoint IeXdiEnumDataBreakpoint;
  53. #endif /* __IeXdiEnumDataBreakpoint_FWD_DEFINED__ */
  54. #ifndef __IeXdiX86Context_FWD_DEFINED__
  55. #define __IeXdiX86Context_FWD_DEFINED__
  56. typedef interface IeXdiX86Context IeXdiX86Context;
  57. #endif /* __IeXdiX86Context_FWD_DEFINED__ */
  58. #ifndef __IeXdiX86ExContext_FWD_DEFINED__
  59. #define __IeXdiX86ExContext_FWD_DEFINED__
  60. typedef interface IeXdiX86ExContext IeXdiX86ExContext;
  61. #endif /* __IeXdiX86ExContext_FWD_DEFINED__ */
  62. #ifndef __IeXdiX86_64Context_FWD_DEFINED__
  63. #define __IeXdiX86_64Context_FWD_DEFINED__
  64. typedef interface IeXdiX86_64Context IeXdiX86_64Context;
  65. #endif /* __IeXdiX86_64Context_FWD_DEFINED__ */
  66. #ifndef __IeXdiSHXContext_FWD_DEFINED__
  67. #define __IeXdiSHXContext_FWD_DEFINED__
  68. typedef interface IeXdiSHXContext IeXdiSHXContext;
  69. #endif /* __IeXdiSHXContext_FWD_DEFINED__ */
  70. #ifndef __IeXdiMIPSContext_FWD_DEFINED__
  71. #define __IeXdiMIPSContext_FWD_DEFINED__
  72. typedef interface IeXdiMIPSContext IeXdiMIPSContext;
  73. #endif /* __IeXdiMIPSContext_FWD_DEFINED__ */
  74. #ifndef __IeXdiARMContext_FWD_DEFINED__
  75. #define __IeXdiARMContext_FWD_DEFINED__
  76. typedef interface IeXdiARMContext IeXdiARMContext;
  77. #endif /* __IeXdiARMContext_FWD_DEFINED__ */
  78. #ifndef __IeXdiPPCContext_FWD_DEFINED__
  79. #define __IeXdiPPCContext_FWD_DEFINED__
  80. typedef interface IeXdiPPCContext IeXdiPPCContext;
  81. #endif /* __IeXdiPPCContext_FWD_DEFINED__ */
  82. #ifndef __IeXdiIA64Context_FWD_DEFINED__
  83. #define __IeXdiIA64Context_FWD_DEFINED__
  84. typedef interface IeXdiIA64Context IeXdiIA64Context;
  85. #endif /* __IeXdiIA64Context_FWD_DEFINED__ */
  86. #ifndef __IeXdiClientNotifyMemChg_FWD_DEFINED__
  87. #define __IeXdiClientNotifyMemChg_FWD_DEFINED__
  88. typedef interface IeXdiClientNotifyMemChg IeXdiClientNotifyMemChg;
  89. #endif /* __IeXdiClientNotifyMemChg_FWD_DEFINED__ */
  90. #ifndef __IeXdiClientNotifyRunChg_FWD_DEFINED__
  91. #define __IeXdiClientNotifyRunChg_FWD_DEFINED__
  92. typedef interface IeXdiClientNotifyRunChg IeXdiClientNotifyRunChg;
  93. #endif /* __IeXdiClientNotifyRunChg_FWD_DEFINED__ */
  94. /* header files for imported files */
  95. #include "oaidl.h"
  96. #include "ocidl.h"
  97. #ifdef __cplusplus
  98. extern "C"{
  99. #endif
  100. void * __RPC_USER MIDL_user_allocate(size_t);
  101. void __RPC_USER MIDL_user_free( void * );
  102. /* interface __MIDL_itf_exdi_0000 */
  103. /* [local] */
  104. // Common eXDI HRESULT values:
  105. //
  106. #define FACILITY_EXDI (130)
  107. #define CUSTOMER_FLAG (1)
  108. //
  109. #define SEV_SUCCESS (0)
  110. #define SEV_INFORMATIONAL (1)
  111. #define SEV_WARNING (2)
  112. #define SEV_ERROR (3)
  113. //
  114. #define MAKE_EXDI_ERROR(ErrorCode,Severity) ((DWORD)(ErrorCode) | (FACILITY_EXDI << 16) | (CUSTOMER_FLAG << 29) | (Severity << 30))
  115. //
  116. // S_OK (0) // Operation successful
  117. #define EXDI_E_NOTIMPL MAKE_EXDI_ERROR (0x4001, SEV_ERROR) // Not implemented (in the specific conditions - could be implement for others - like Kernel Debugger inactive)
  118. #define EXDI_E_OUTOFMEMORY MAKE_EXDI_ERROR (0x000E, SEV_ERROR) // Failed to allocate necessary memory
  119. #define EXDI_E_INVALIDARG MAKE_EXDI_ERROR (0x0057, SEV_ERROR) // One or more arguments are invalid
  120. #define EXDI_E_ABORT MAKE_EXDI_ERROR (0x4004, SEV_ERROR) // Operation aborted
  121. #define EXDI_E_FAIL MAKE_EXDI_ERROR (0x4005, SEV_ERROR) // Unspecified failure
  122. #define EXDI_E_COMMUNICATION MAKE_EXDI_ERROR (0x0001, SEV_ERROR) // Communication error between host driver and target
  123. //
  124. #define EXDI_E_NOLASTEXCEPTION MAKE_EXDI_ERROR (0x0002, SEV_ERROR) // No exception occured already, cannot return last
  125. #define EXDI_I_TGTALREADYRUNNING MAKE_EXDI_ERROR (0x0003, SEV_INFORMATIONAL) // Indicates that the target was already running
  126. #define EXDI_I_TGTALREADYHALTED MAKE_EXDI_ERROR (0x0004, SEV_INFORMATIONAL) // Indicates that the target was already halted
  127. #define EXDI_E_TGTWASNOTHALTED MAKE_EXDI_ERROR (0x0005, SEV_ERROR) // The target was not halted (before Single Step command issued)
  128. #define EXDI_E_NORESAVAILABLE MAKE_EXDI_ERROR (0x0006, SEV_ERROR) // No resource available, cannot instanciate Breakpoint (in the kind requested)
  129. #define EXDI_E_NOREBOOTAVAIL MAKE_EXDI_ERROR (0x0007, SEV_ERROR) // The external reset is not available programatically to the probe
  130. #define EXDI_E_ACCESSVIOLATION MAKE_EXDI_ERROR (0x0008, SEV_ERROR) // Access violation on at least one element in address range specificified by the operation
  131. #define EXDI_E_CANNOTWHILETGTRUNNING MAKE_EXDI_ERROR (0x0009, SEV_ERROR) // Cannot proceed while target running. Operation not supported on the fly. Must halt the target first
  132. #define EXDI_E_USEDBYCONCURENTTHREAD MAKE_EXDI_ERROR (0x000A, SEV_ERROR) // Cannot proceed immediately because resource is already used by concurent thread. Recall later or call SetWaitOnConcurentUse (TRUE) - default
  133. #define EXDI_E_ADVISELIMIT MAKE_EXDI_ERROR (0x000D, SEV_ERROR) // The connection point has already reached its limit of connections and cannot accept any more
  134. typedef __int64 ADDRESS_TYPE;
  135. typedef __int64 *PADDRESS_TYPE;
  136. typedef unsigned __int64 DWORD64;
  137. typedef unsigned __int64 *PDWORD64;
  138. #define PROCESSOR_FAMILY_X86 ( 0 )
  139. #define PROCESSOR_FAMILY_SH3 ( 1 )
  140. #define PROCESSOR_FAMILY_SH4 ( 2 )
  141. #define PROCESSOR_FAMILY_MIPS ( 3 )
  142. #define PROCESSOR_FAMILY_ARM ( 4 )
  143. #define PROCESSOR_FAMILY_PPC ( 5 )
  144. #define PROCESSOR_FAMILY_IA64 ( 8 )
  145. #define PROCESSOR_FAMILY_UNK ( 0xffffffff )
  146. typedef struct _DEBUG_ACCESS_CAPABILITIES_STRUCT
  147. {
  148. BOOL fWriteCBPWhileRunning;
  149. BOOL fReadCBPWhileRunning;
  150. BOOL fWriteDBPWhileRunning;
  151. BOOL fReadDBPWhileRunning;
  152. BOOL fWriteVMWhileRunning;
  153. BOOL fReadVMWhileRunning;
  154. BOOL fWritePMWhileRunning;
  155. BOOL fReadPMWhileRunning;
  156. BOOL fWriteRegWhileRunning;
  157. BOOL fReadRegWhileRunning;
  158. } DEBUG_ACCESS_CAPABILITIES_STRUCT;
  159. typedef struct _DEBUG_ACCESS_CAPABILITIES_STRUCT *PDEBUG_ACCESS_CAPABILITIES_STRUCT;
  160. typedef struct _GLOBAL_TARGET_INFO_STRUCT
  161. {
  162. DWORD TargetProcessorFamily;
  163. DEBUG_ACCESS_CAPABILITIES_STRUCT dbc;
  164. LPOLESTR szTargetName;
  165. LPOLESTR szProbeName;
  166. } GLOBAL_TARGET_INFO_STRUCT;
  167. typedef struct _GLOBAL_TARGET_INFO_STRUCT *PGLOBAL_TARGET_INFO_STRUCT;
  168. typedef
  169. enum _RUN_STATUS_TYPE
  170. { rsRunning = 0,
  171. rsHalted = rsRunning + 1,
  172. rsError = rsHalted + 1,
  173. rsUnknown = rsError + 1
  174. } RUN_STATUS_TYPE;
  175. typedef enum _RUN_STATUS_TYPE *PRUN_STATUS_TYPE;
  176. typedef
  177. enum _PHALT_REASON_TYPE
  178. { hrNone = 0,
  179. hrUser = hrNone + 1,
  180. hrException = hrUser + 1,
  181. hrBp = hrException + 1,
  182. hrStep = hrBp + 1,
  183. hrUnknown = hrStep + 1
  184. } HALT_REASON_TYPE;
  185. typedef enum _PHALT_REASON_TYPE *PHALT_REASON_TYPE;
  186. typedef struct _EXCEPTION_TYPE
  187. {
  188. DWORD dwCode;
  189. ADDRESS_TYPE Address;
  190. } EXCEPTION_TYPE;
  191. typedef struct _EXCEPTION_TYPE *PEXCEPTION_TYPE;
  192. typedef
  193. enum _CBP_KIND
  194. { cbptAlgo = 0,
  195. cbptHW = cbptAlgo + 1,
  196. cbptSW = cbptHW + 1
  197. } CBP_KIND;
  198. typedef enum _CBP_KIND *PCBP_KIND;
  199. typedef
  200. enum _DATA_ACCESS_TYPE
  201. { daWrite = 0,
  202. daRead = 1,
  203. daBoth = 2
  204. } DATA_ACCESS_TYPE;
  205. typedef enum _DATA_ACCESS_TYPE *PDATA_ACCESS_TYPE;
  206. typedef struct _BREAKPOINT_SUPPORT_TYPE
  207. {
  208. BOOL fCodeBpBypassCountSupported;
  209. BOOL fDataBpBypassCountSupported;
  210. BOOL fDataBpSupported;
  211. BOOL fDataBpMaskableAddress;
  212. BOOL fDataBpMaskableData;
  213. BOOL fDataBpDataWidthSpecifiable;
  214. BOOL fDataBpReadWriteSpecifiable;
  215. BOOL fDataBpDataMatchSupported;
  216. } BREAKPOINT_SUPPORT_TYPE;
  217. typedef struct _BREAKPOINT_SUPPORT_TYPE *PBREAKPOINT_SUPPORT_TYPE;
  218. typedef
  219. enum _MEM_TYPE
  220. { mtVirtual = 0,
  221. mtPhysicalOrPeriIO = mtVirtual + 1,
  222. mtContext = mtPhysicalOrPeriIO + 1
  223. } MEM_TYPE;
  224. typedef enum _MEM_TYPE *PMEM_TYPE;
  225. typedef
  226. enum _EXCEPTION_DEFAULT_ACTION_TYPE
  227. { edaIgnore = 0,
  228. edaNotify = edaIgnore + 1,
  229. edaStop = edaNotify + 1
  230. } EXCEPTION_DEFAULT_ACTION_TYPE;
  231. typedef struct _EXCEPTION_DESCRIPTION_TYPE
  232. {
  233. DWORD dwExceptionCode;
  234. EXCEPTION_DEFAULT_ACTION_TYPE efd;
  235. wchar_t szDescription[ 60 ];
  236. } EXCEPTION_DESCRIPTION_TYPE;
  237. extern RPC_IF_HANDLE __MIDL_itf_exdi_0000_v0_0_c_ifspec;
  238. extern RPC_IF_HANDLE __MIDL_itf_exdi_0000_v0_0_s_ifspec;
  239. #ifndef __IeXdiServer_INTERFACE_DEFINED__
  240. #define __IeXdiServer_INTERFACE_DEFINED__
  241. /* interface IeXdiServer */
  242. /* [ref][helpstring][uuid][object] */
  243. #define DBGMODE_BFMASK_KERNEL (0x0001) // If TRUE indicates that Kernel Debugger is active (can use KDAPI), so HW on-chip debug functions (eXDI)
  244. // may be optionaly handled (can return EXDI_E_NOTIMPL)
  245. // If FALSE indicates that Kernel Debugger is not active so HW on-chip debug capabilities are the only
  246. // one available and should be implemented.
  247. EXTERN_C const IID IID_IeXdiServer;
  248. #if defined(__cplusplus) && !defined(CINTERFACE)
  249. MIDL_INTERFACE("47486F67-6461-6C65-5844-495352435201")
  250. IeXdiServer : public IUnknown
  251. {
  252. public:
  253. virtual HRESULT STDMETHODCALLTYPE GetTargetInfo(
  254. /* [out] */ PGLOBAL_TARGET_INFO_STRUCT pgti) = 0;
  255. virtual HRESULT STDMETHODCALLTYPE SetDebugMode(
  256. /* [in] */ DWORD dwModeBitField) = 0;
  257. virtual HRESULT STDMETHODCALLTYPE GetExceptionDescriptionList(
  258. /* [in] */ DWORD dwNbElementToReturn,
  259. /* [size_is][out] */ EXCEPTION_DESCRIPTION_TYPE *pedTable,
  260. /* [out] */ DWORD *pdwNbTotalExceptionInList) = 0;
  261. virtual HRESULT STDMETHODCALLTYPE GetErrorDescription(
  262. /* [in] */ HRESULT ErrorCode,
  263. /* [out] */ LPOLESTR *pszErrorDesc) = 0;
  264. virtual HRESULT STDMETHODCALLTYPE SetWaitOnConcurentUse(
  265. /* [in] */ BOOL fNewWaitOnConcurentUseFlag) = 0;
  266. virtual HRESULT STDMETHODCALLTYPE GetRunStatus(
  267. /* [out] */ PRUN_STATUS_TYPE persCurrent,
  268. /* [out] */ PHALT_REASON_TYPE pehrCurrent,
  269. /* [out] */ ADDRESS_TYPE *pCurrentExecAddress,
  270. /* [out] */ DWORD *pdwExceptionCode) = 0;
  271. virtual HRESULT STDMETHODCALLTYPE GetLastException(
  272. /* [out] */ PEXCEPTION_TYPE pexLast) = 0;
  273. virtual HRESULT STDMETHODCALLTYPE Run( void) = 0;
  274. virtual HRESULT STDMETHODCALLTYPE Halt( void) = 0;
  275. virtual HRESULT STDMETHODCALLTYPE DoSingleStep( void) = 0;
  276. virtual HRESULT STDMETHODCALLTYPE DoMultipleStep(
  277. /* [in] */ DWORD dwNbInstructions) = 0;
  278. virtual HRESULT STDMETHODCALLTYPE DoRangeStep(
  279. /* [in] */ ADDRESS_TYPE FirstAddress,
  280. /* [in] */ ADDRESS_TYPE LastAddress) = 0;
  281. virtual HRESULT STDMETHODCALLTYPE Reboot( void) = 0;
  282. virtual HRESULT STDMETHODCALLTYPE GetBpSupport(
  283. /* [out] */ PBREAKPOINT_SUPPORT_TYPE pbps) = 0;
  284. virtual HRESULT STDMETHODCALLTYPE GetNbCodeBpAvail(
  285. /* [out] */ DWORD *pdwNbHwCodeBpAvail,
  286. /* [out] */ DWORD *pdwNbSwCodeBpAvail) = 0;
  287. virtual HRESULT STDMETHODCALLTYPE GetNbDataBpAvail(
  288. /* [out] */ DWORD *pdwNbDataBpAvail) = 0;
  289. virtual HRESULT STDMETHODCALLTYPE AddCodeBreakpoint(
  290. /* [in] */ ADDRESS_TYPE Address,
  291. /* [in] */ CBP_KIND cbpk,
  292. /* [in] */ MEM_TYPE mt,
  293. /* [in] */ DWORD dwExecMode,
  294. /* [in] */ DWORD dwTotalBypassCount,
  295. /* [out] */ IeXdiCodeBreakpoint **ppieXdiCodeBreakpoint) = 0;
  296. virtual HRESULT STDMETHODCALLTYPE DelCodeBreakpoint(
  297. /* [in] */ IeXdiCodeBreakpoint *pieXdiCodeBreakpoint) = 0;
  298. virtual HRESULT STDMETHODCALLTYPE AddDataBreakpoint(
  299. /* [in] */ ADDRESS_TYPE Address,
  300. /* [in] */ ADDRESS_TYPE AddressMask,
  301. /* [in] */ DWORD dwData,
  302. /* [in] */ DWORD dwDataMask,
  303. /* [in] */ BYTE bAccessWidth,
  304. /* [in] */ MEM_TYPE mt,
  305. /* [in] */ BYTE bAddressSpace,
  306. /* [in] */ DATA_ACCESS_TYPE da,
  307. /* [in] */ DWORD dwTotalBypassCount,
  308. /* [out] */ IeXdiDataBreakpoint **ppieXdiDataBreakpoint) = 0;
  309. virtual HRESULT STDMETHODCALLTYPE DelDataBreakpoint(
  310. /* [in] */ IeXdiDataBreakpoint *pieXdiDataBreakpoint) = 0;
  311. virtual HRESULT STDMETHODCALLTYPE EnumAllCodeBreakpoints(
  312. /* [out] */ IeXdiEnumCodeBreakpoint **ppieXdiEnumCodeBreakpoint) = 0;
  313. virtual HRESULT STDMETHODCALLTYPE EnumAllDataBreakpoints(
  314. /* [out] */ IeXdiEnumDataBreakpoint **ppieXdiEnumDataBreakpoint) = 0;
  315. virtual HRESULT STDMETHODCALLTYPE EnumCodeBreakpointsInAddrRange(
  316. /* [in] */ ADDRESS_TYPE FirstAddress,
  317. /* [in] */ ADDRESS_TYPE LastAddress,
  318. /* [out] */ IeXdiEnumCodeBreakpoint **ppieXdiEnumCodeBreakpoint) = 0;
  319. virtual HRESULT STDMETHODCALLTYPE EnumDataBreakpointsInAddrRange(
  320. /* [in] */ ADDRESS_TYPE FirstAddress,
  321. /* [in] */ ADDRESS_TYPE LastAddress,
  322. /* [out] */ IeXdiEnumDataBreakpoint **ppieXdiEnumDataBreakpoint) = 0;
  323. virtual HRESULT STDMETHODCALLTYPE StartNotifyingRunChg(
  324. /* [in] */ IeXdiClientNotifyRunChg *pieXdiClientNotifyRunChg,
  325. /* [out] */ DWORD *pdwConnectionCookie) = 0;
  326. virtual HRESULT STDMETHODCALLTYPE StopNotifyingRunChg(
  327. /* [in] */ DWORD dwConnectionCookie) = 0;
  328. virtual HRESULT STDMETHODCALLTYPE ReadVirtualMemory(
  329. /* [in] */ ADDRESS_TYPE Address,
  330. /* [in] */ DWORD dwNbElemToRead,
  331. /* [in] */ BYTE bAccessWidth,
  332. /* [size_is][out] */ BYTE *pbReadBuffer,
  333. /* [out] */ DWORD *pdwNbElementEffectRead) = 0;
  334. virtual HRESULT STDMETHODCALLTYPE WriteVirtualMemory(
  335. /* [in] */ ADDRESS_TYPE Address,
  336. /* [in] */ DWORD dwNbElemToWrite,
  337. /* [in] */ BYTE bAccessWidth,
  338. /* [size_is][in] */ const BYTE *pbWriteBuffer,
  339. /* [out] */ DWORD *pdwNbElementEffectWritten) = 0;
  340. virtual HRESULT STDMETHODCALLTYPE ReadPhysicalMemoryOrPeriphIO(
  341. /* [in] */ ADDRESS_TYPE Address,
  342. /* [in] */ BYTE bAddressSpace,
  343. /* [in] */ DWORD dwNbElemToRead,
  344. /* [in] */ BYTE bAccessWidth,
  345. /* [size_is][out] */ BYTE *pbReadBuffer) = 0;
  346. virtual HRESULT STDMETHODCALLTYPE WritePhysicalMemoryOrPeriphIO(
  347. /* [in] */ ADDRESS_TYPE Address,
  348. /* [in] */ BYTE bAddressSpace,
  349. /* [in] */ DWORD dwNbElemToWrite,
  350. /* [in] */ BYTE bAccessWidth,
  351. /* [size_is][in] */ const BYTE *pbWriteBuffer) = 0;
  352. virtual HRESULT STDMETHODCALLTYPE StartNotifyingMemChg(
  353. /* [in] */ IeXdiClientNotifyMemChg *pieXdiClientNotifyMemChg,
  354. /* [out] */ DWORD *pdwConnectionCookie) = 0;
  355. virtual HRESULT STDMETHODCALLTYPE StopNotifyingMemChg(
  356. /* [in] */ DWORD dwConnectionCookie) = 0;
  357. virtual HRESULT STDMETHODCALLTYPE Ioctl(
  358. /* [in] */ DWORD dwBuffInSize,
  359. /* [size_is][in] */ const BYTE *pbBufferIn,
  360. /* [in] */ DWORD dwBuffOutSize,
  361. /* [out] */ DWORD *pdwEffectBuffOutSize,
  362. /* [length_is][size_is][out] */ BYTE *pbBufferOut) = 0;
  363. };
  364. #else /* C style interface */
  365. typedef struct IeXdiServerVtbl
  366. {
  367. BEGIN_INTERFACE
  368. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  369. IeXdiServer * This,
  370. /* [in] */ REFIID riid,
  371. /* [iid_is][out] */ void **ppvObject);
  372. ULONG ( STDMETHODCALLTYPE *AddRef )(
  373. IeXdiServer * This);
  374. ULONG ( STDMETHODCALLTYPE *Release )(
  375. IeXdiServer * This);
  376. HRESULT ( STDMETHODCALLTYPE *GetTargetInfo )(
  377. IeXdiServer * This,
  378. /* [out] */ PGLOBAL_TARGET_INFO_STRUCT pgti);
  379. HRESULT ( STDMETHODCALLTYPE *SetDebugMode )(
  380. IeXdiServer * This,
  381. /* [in] */ DWORD dwModeBitField);
  382. HRESULT ( STDMETHODCALLTYPE *GetExceptionDescriptionList )(
  383. IeXdiServer * This,
  384. /* [in] */ DWORD dwNbElementToReturn,
  385. /* [size_is][out] */ EXCEPTION_DESCRIPTION_TYPE *pedTable,
  386. /* [out] */ DWORD *pdwNbTotalExceptionInList);
  387. HRESULT ( STDMETHODCALLTYPE *GetErrorDescription )(
  388. IeXdiServer * This,
  389. /* [in] */ HRESULT ErrorCode,
  390. /* [out] */ LPOLESTR *pszErrorDesc);
  391. HRESULT ( STDMETHODCALLTYPE *SetWaitOnConcurentUse )(
  392. IeXdiServer * This,
  393. /* [in] */ BOOL fNewWaitOnConcurentUseFlag);
  394. HRESULT ( STDMETHODCALLTYPE *GetRunStatus )(
  395. IeXdiServer * This,
  396. /* [out] */ PRUN_STATUS_TYPE persCurrent,
  397. /* [out] */ PHALT_REASON_TYPE pehrCurrent,
  398. /* [out] */ ADDRESS_TYPE *pCurrentExecAddress,
  399. /* [out] */ DWORD *pdwExceptionCode);
  400. HRESULT ( STDMETHODCALLTYPE *GetLastException )(
  401. IeXdiServer * This,
  402. /* [out] */ PEXCEPTION_TYPE pexLast);
  403. HRESULT ( STDMETHODCALLTYPE *Run )(
  404. IeXdiServer * This);
  405. HRESULT ( STDMETHODCALLTYPE *Halt )(
  406. IeXdiServer * This);
  407. HRESULT ( STDMETHODCALLTYPE *DoSingleStep )(
  408. IeXdiServer * This);
  409. HRESULT ( STDMETHODCALLTYPE *DoMultipleStep )(
  410. IeXdiServer * This,
  411. /* [in] */ DWORD dwNbInstructions);
  412. HRESULT ( STDMETHODCALLTYPE *DoRangeStep )(
  413. IeXdiServer * This,
  414. /* [in] */ ADDRESS_TYPE FirstAddress,
  415. /* [in] */ ADDRESS_TYPE LastAddress);
  416. HRESULT ( STDMETHODCALLTYPE *Reboot )(
  417. IeXdiServer * This);
  418. HRESULT ( STDMETHODCALLTYPE *GetBpSupport )(
  419. IeXdiServer * This,
  420. /* [out] */ PBREAKPOINT_SUPPORT_TYPE pbps);
  421. HRESULT ( STDMETHODCALLTYPE *GetNbCodeBpAvail )(
  422. IeXdiServer * This,
  423. /* [out] */ DWORD *pdwNbHwCodeBpAvail,
  424. /* [out] */ DWORD *pdwNbSwCodeBpAvail);
  425. HRESULT ( STDMETHODCALLTYPE *GetNbDataBpAvail )(
  426. IeXdiServer * This,
  427. /* [out] */ DWORD *pdwNbDataBpAvail);
  428. HRESULT ( STDMETHODCALLTYPE *AddCodeBreakpoint )(
  429. IeXdiServer * This,
  430. /* [in] */ ADDRESS_TYPE Address,
  431. /* [in] */ CBP_KIND cbpk,
  432. /* [in] */ MEM_TYPE mt,
  433. /* [in] */ DWORD dwExecMode,
  434. /* [in] */ DWORD dwTotalBypassCount,
  435. /* [out] */ IeXdiCodeBreakpoint **ppieXdiCodeBreakpoint);
  436. HRESULT ( STDMETHODCALLTYPE *DelCodeBreakpoint )(
  437. IeXdiServer * This,
  438. /* [in] */ IeXdiCodeBreakpoint *pieXdiCodeBreakpoint);
  439. HRESULT ( STDMETHODCALLTYPE *AddDataBreakpoint )(
  440. IeXdiServer * This,
  441. /* [in] */ ADDRESS_TYPE Address,
  442. /* [in] */ ADDRESS_TYPE AddressMask,
  443. /* [in] */ DWORD dwData,
  444. /* [in] */ DWORD dwDataMask,
  445. /* [in] */ BYTE bAccessWidth,
  446. /* [in] */ MEM_TYPE mt,
  447. /* [in] */ BYTE bAddressSpace,
  448. /* [in] */ DATA_ACCESS_TYPE da,
  449. /* [in] */ DWORD dwTotalBypassCount,
  450. /* [out] */ IeXdiDataBreakpoint **ppieXdiDataBreakpoint);
  451. HRESULT ( STDMETHODCALLTYPE *DelDataBreakpoint )(
  452. IeXdiServer * This,
  453. /* [in] */ IeXdiDataBreakpoint *pieXdiDataBreakpoint);
  454. HRESULT ( STDMETHODCALLTYPE *EnumAllCodeBreakpoints )(
  455. IeXdiServer * This,
  456. /* [out] */ IeXdiEnumCodeBreakpoint **ppieXdiEnumCodeBreakpoint);
  457. HRESULT ( STDMETHODCALLTYPE *EnumAllDataBreakpoints )(
  458. IeXdiServer * This,
  459. /* [out] */ IeXdiEnumDataBreakpoint **ppieXdiEnumDataBreakpoint);
  460. HRESULT ( STDMETHODCALLTYPE *EnumCodeBreakpointsInAddrRange )(
  461. IeXdiServer * This,
  462. /* [in] */ ADDRESS_TYPE FirstAddress,
  463. /* [in] */ ADDRESS_TYPE LastAddress,
  464. /* [out] */ IeXdiEnumCodeBreakpoint **ppieXdiEnumCodeBreakpoint);
  465. HRESULT ( STDMETHODCALLTYPE *EnumDataBreakpointsInAddrRange )(
  466. IeXdiServer * This,
  467. /* [in] */ ADDRESS_TYPE FirstAddress,
  468. /* [in] */ ADDRESS_TYPE LastAddress,
  469. /* [out] */ IeXdiEnumDataBreakpoint **ppieXdiEnumDataBreakpoint);
  470. HRESULT ( STDMETHODCALLTYPE *StartNotifyingRunChg )(
  471. IeXdiServer * This,
  472. /* [in] */ IeXdiClientNotifyRunChg *pieXdiClientNotifyRunChg,
  473. /* [out] */ DWORD *pdwConnectionCookie);
  474. HRESULT ( STDMETHODCALLTYPE *StopNotifyingRunChg )(
  475. IeXdiServer * This,
  476. /* [in] */ DWORD dwConnectionCookie);
  477. HRESULT ( STDMETHODCALLTYPE *ReadVirtualMemory )(
  478. IeXdiServer * This,
  479. /* [in] */ ADDRESS_TYPE Address,
  480. /* [in] */ DWORD dwNbElemToRead,
  481. /* [in] */ BYTE bAccessWidth,
  482. /* [size_is][out] */ BYTE *pbReadBuffer,
  483. /* [out] */ DWORD *pdwNbElementEffectRead);
  484. HRESULT ( STDMETHODCALLTYPE *WriteVirtualMemory )(
  485. IeXdiServer * This,
  486. /* [in] */ ADDRESS_TYPE Address,
  487. /* [in] */ DWORD dwNbElemToWrite,
  488. /* [in] */ BYTE bAccessWidth,
  489. /* [size_is][in] */ const BYTE *pbWriteBuffer,
  490. /* [out] */ DWORD *pdwNbElementEffectWritten);
  491. HRESULT ( STDMETHODCALLTYPE *ReadPhysicalMemoryOrPeriphIO )(
  492. IeXdiServer * This,
  493. /* [in] */ ADDRESS_TYPE Address,
  494. /* [in] */ BYTE bAddressSpace,
  495. /* [in] */ DWORD dwNbElemToRead,
  496. /* [in] */ BYTE bAccessWidth,
  497. /* [size_is][out] */ BYTE *pbReadBuffer);
  498. HRESULT ( STDMETHODCALLTYPE *WritePhysicalMemoryOrPeriphIO )(
  499. IeXdiServer * This,
  500. /* [in] */ ADDRESS_TYPE Address,
  501. /* [in] */ BYTE bAddressSpace,
  502. /* [in] */ DWORD dwNbElemToWrite,
  503. /* [in] */ BYTE bAccessWidth,
  504. /* [size_is][in] */ const BYTE *pbWriteBuffer);
  505. HRESULT ( STDMETHODCALLTYPE *StartNotifyingMemChg )(
  506. IeXdiServer * This,
  507. /* [in] */ IeXdiClientNotifyMemChg *pieXdiClientNotifyMemChg,
  508. /* [out] */ DWORD *pdwConnectionCookie);
  509. HRESULT ( STDMETHODCALLTYPE *StopNotifyingMemChg )(
  510. IeXdiServer * This,
  511. /* [in] */ DWORD dwConnectionCookie);
  512. HRESULT ( STDMETHODCALLTYPE *Ioctl )(
  513. IeXdiServer * This,
  514. /* [in] */ DWORD dwBuffInSize,
  515. /* [size_is][in] */ const BYTE *pbBufferIn,
  516. /* [in] */ DWORD dwBuffOutSize,
  517. /* [out] */ DWORD *pdwEffectBuffOutSize,
  518. /* [length_is][size_is][out] */ BYTE *pbBufferOut);
  519. END_INTERFACE
  520. } IeXdiServerVtbl;
  521. interface IeXdiServer
  522. {
  523. CONST_VTBL struct IeXdiServerVtbl *lpVtbl;
  524. };
  525. #ifdef COBJMACROS
  526. #define IeXdiServer_QueryInterface(This,riid,ppvObject) \
  527. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  528. #define IeXdiServer_AddRef(This) \
  529. (This)->lpVtbl -> AddRef(This)
  530. #define IeXdiServer_Release(This) \
  531. (This)->lpVtbl -> Release(This)
  532. #define IeXdiServer_GetTargetInfo(This,pgti) \
  533. (This)->lpVtbl -> GetTargetInfo(This,pgti)
  534. #define IeXdiServer_SetDebugMode(This,dwModeBitField) \
  535. (This)->lpVtbl -> SetDebugMode(This,dwModeBitField)
  536. #define IeXdiServer_GetExceptionDescriptionList(This,dwNbElementToReturn,pedTable,pdwNbTotalExceptionInList) \
  537. (This)->lpVtbl -> GetExceptionDescriptionList(This,dwNbElementToReturn,pedTable,pdwNbTotalExceptionInList)
  538. #define IeXdiServer_GetErrorDescription(This,ErrorCode,pszErrorDesc) \
  539. (This)->lpVtbl -> GetErrorDescription(This,ErrorCode,pszErrorDesc)
  540. #define IeXdiServer_SetWaitOnConcurentUse(This,fNewWaitOnConcurentUseFlag) \
  541. (This)->lpVtbl -> SetWaitOnConcurentUse(This,fNewWaitOnConcurentUseFlag)
  542. #define IeXdiServer_GetRunStatus(This,persCurrent,pehrCurrent,pCurrentExecAddress,pdwExceptionCode) \
  543. (This)->lpVtbl -> GetRunStatus(This,persCurrent,pehrCurrent,pCurrentExecAddress,pdwExceptionCode)
  544. #define IeXdiServer_GetLastException(This,pexLast) \
  545. (This)->lpVtbl -> GetLastException(This,pexLast)
  546. #define IeXdiServer_Run(This) \
  547. (This)->lpVtbl -> Run(This)
  548. #define IeXdiServer_Halt(This) \
  549. (This)->lpVtbl -> Halt(This)
  550. #define IeXdiServer_DoSingleStep(This) \
  551. (This)->lpVtbl -> DoSingleStep(This)
  552. #define IeXdiServer_DoMultipleStep(This,dwNbInstructions) \
  553. (This)->lpVtbl -> DoMultipleStep(This,dwNbInstructions)
  554. #define IeXdiServer_DoRangeStep(This,FirstAddress,LastAddress) \
  555. (This)->lpVtbl -> DoRangeStep(This,FirstAddress,LastAddress)
  556. #define IeXdiServer_Reboot(This) \
  557. (This)->lpVtbl -> Reboot(This)
  558. #define IeXdiServer_GetBpSupport(This,pbps) \
  559. (This)->lpVtbl -> GetBpSupport(This,pbps)
  560. #define IeXdiServer_GetNbCodeBpAvail(This,pdwNbHwCodeBpAvail,pdwNbSwCodeBpAvail) \
  561. (This)->lpVtbl -> GetNbCodeBpAvail(This,pdwNbHwCodeBpAvail,pdwNbSwCodeBpAvail)
  562. #define IeXdiServer_GetNbDataBpAvail(This,pdwNbDataBpAvail) \
  563. (This)->lpVtbl -> GetNbDataBpAvail(This,pdwNbDataBpAvail)
  564. #define IeXdiServer_AddCodeBreakpoint(This,Address,cbpk,mt,dwExecMode,dwTotalBypassCount,ppieXdiCodeBreakpoint) \
  565. (This)->lpVtbl -> AddCodeBreakpoint(This,Address,cbpk,mt,dwExecMode,dwTotalBypassCount,ppieXdiCodeBreakpoint)
  566. #define IeXdiServer_DelCodeBreakpoint(This,pieXdiCodeBreakpoint) \
  567. (This)->lpVtbl -> DelCodeBreakpoint(This,pieXdiCodeBreakpoint)
  568. #define IeXdiServer_AddDataBreakpoint(This,Address,AddressMask,dwData,dwDataMask,bAccessWidth,mt,bAddressSpace,da,dwTotalBypassCount,ppieXdiDataBreakpoint) \
  569. (This)->lpVtbl -> AddDataBreakpoint(This,Address,AddressMask,dwData,dwDataMask,bAccessWidth,mt,bAddressSpace,da,dwTotalBypassCount,ppieXdiDataBreakpoint)
  570. #define IeXdiServer_DelDataBreakpoint(This,pieXdiDataBreakpoint) \
  571. (This)->lpVtbl -> DelDataBreakpoint(This,pieXdiDataBreakpoint)
  572. #define IeXdiServer_EnumAllCodeBreakpoints(This,ppieXdiEnumCodeBreakpoint) \
  573. (This)->lpVtbl -> EnumAllCodeBreakpoints(This,ppieXdiEnumCodeBreakpoint)
  574. #define IeXdiServer_EnumAllDataBreakpoints(This,ppieXdiEnumDataBreakpoint) \
  575. (This)->lpVtbl -> EnumAllDataBreakpoints(This,ppieXdiEnumDataBreakpoint)
  576. #define IeXdiServer_EnumCodeBreakpointsInAddrRange(This,FirstAddress,LastAddress,ppieXdiEnumCodeBreakpoint) \
  577. (This)->lpVtbl -> EnumCodeBreakpointsInAddrRange(This,FirstAddress,LastAddress,ppieXdiEnumCodeBreakpoint)
  578. #define IeXdiServer_EnumDataBreakpointsInAddrRange(This,FirstAddress,LastAddress,ppieXdiEnumDataBreakpoint) \
  579. (This)->lpVtbl -> EnumDataBreakpointsInAddrRange(This,FirstAddress,LastAddress,ppieXdiEnumDataBreakpoint)
  580. #define IeXdiServer_StartNotifyingRunChg(This,pieXdiClientNotifyRunChg,pdwConnectionCookie) \
  581. (This)->lpVtbl -> StartNotifyingRunChg(This,pieXdiClientNotifyRunChg,pdwConnectionCookie)
  582. #define IeXdiServer_StopNotifyingRunChg(This,dwConnectionCookie) \
  583. (This)->lpVtbl -> StopNotifyingRunChg(This,dwConnectionCookie)
  584. #define IeXdiServer_ReadVirtualMemory(This,Address,dwNbElemToRead,bAccessWidth,pbReadBuffer,pdwNbElementEffectRead) \
  585. (This)->lpVtbl -> ReadVirtualMemory(This,Address,dwNbElemToRead,bAccessWidth,pbReadBuffer,pdwNbElementEffectRead)
  586. #define IeXdiServer_WriteVirtualMemory(This,Address,dwNbElemToWrite,bAccessWidth,pbWriteBuffer,pdwNbElementEffectWritten) \
  587. (This)->lpVtbl -> WriteVirtualMemory(This,Address,dwNbElemToWrite,bAccessWidth,pbWriteBuffer,pdwNbElementEffectWritten)
  588. #define IeXdiServer_ReadPhysicalMemoryOrPeriphIO(This,Address,bAddressSpace,dwNbElemToRead,bAccessWidth,pbReadBuffer) \
  589. (This)->lpVtbl -> ReadPhysicalMemoryOrPeriphIO(This,Address,bAddressSpace,dwNbElemToRead,bAccessWidth,pbReadBuffer)
  590. #define IeXdiServer_WritePhysicalMemoryOrPeriphIO(This,Address,bAddressSpace,dwNbElemToWrite,bAccessWidth,pbWriteBuffer) \
  591. (This)->lpVtbl -> WritePhysicalMemoryOrPeriphIO(This,Address,bAddressSpace,dwNbElemToWrite,bAccessWidth,pbWriteBuffer)
  592. #define IeXdiServer_StartNotifyingMemChg(This,pieXdiClientNotifyMemChg,pdwConnectionCookie) \
  593. (This)->lpVtbl -> StartNotifyingMemChg(This,pieXdiClientNotifyMemChg,pdwConnectionCookie)
  594. #define IeXdiServer_StopNotifyingMemChg(This,dwConnectionCookie) \
  595. (This)->lpVtbl -> StopNotifyingMemChg(This,dwConnectionCookie)
  596. #define IeXdiServer_Ioctl(This,dwBuffInSize,pbBufferIn,dwBuffOutSize,pdwEffectBuffOutSize,pbBufferOut) \
  597. (This)->lpVtbl -> Ioctl(This,dwBuffInSize,pbBufferIn,dwBuffOutSize,pdwEffectBuffOutSize,pbBufferOut)
  598. #endif /* COBJMACROS */
  599. #endif /* C style interface */
  600. HRESULT STDMETHODCALLTYPE IeXdiServer_GetTargetInfo_Proxy(
  601. IeXdiServer * This,
  602. /* [out] */ PGLOBAL_TARGET_INFO_STRUCT pgti);
  603. void __RPC_STUB IeXdiServer_GetTargetInfo_Stub(
  604. IRpcStubBuffer *This,
  605. IRpcChannelBuffer *_pRpcChannelBuffer,
  606. PRPC_MESSAGE _pRpcMessage,
  607. DWORD *_pdwStubPhase);
  608. HRESULT STDMETHODCALLTYPE IeXdiServer_SetDebugMode_Proxy(
  609. IeXdiServer * This,
  610. /* [in] */ DWORD dwModeBitField);
  611. void __RPC_STUB IeXdiServer_SetDebugMode_Stub(
  612. IRpcStubBuffer *This,
  613. IRpcChannelBuffer *_pRpcChannelBuffer,
  614. PRPC_MESSAGE _pRpcMessage,
  615. DWORD *_pdwStubPhase);
  616. HRESULT STDMETHODCALLTYPE IeXdiServer_GetExceptionDescriptionList_Proxy(
  617. IeXdiServer * This,
  618. /* [in] */ DWORD dwNbElementToReturn,
  619. /* [size_is][out] */ EXCEPTION_DESCRIPTION_TYPE *pedTable,
  620. /* [out] */ DWORD *pdwNbTotalExceptionInList);
  621. void __RPC_STUB IeXdiServer_GetExceptionDescriptionList_Stub(
  622. IRpcStubBuffer *This,
  623. IRpcChannelBuffer *_pRpcChannelBuffer,
  624. PRPC_MESSAGE _pRpcMessage,
  625. DWORD *_pdwStubPhase);
  626. HRESULT STDMETHODCALLTYPE IeXdiServer_GetErrorDescription_Proxy(
  627. IeXdiServer * This,
  628. /* [in] */ HRESULT ErrorCode,
  629. /* [out] */ LPOLESTR *pszErrorDesc);
  630. void __RPC_STUB IeXdiServer_GetErrorDescription_Stub(
  631. IRpcStubBuffer *This,
  632. IRpcChannelBuffer *_pRpcChannelBuffer,
  633. PRPC_MESSAGE _pRpcMessage,
  634. DWORD *_pdwStubPhase);
  635. HRESULT STDMETHODCALLTYPE IeXdiServer_SetWaitOnConcurentUse_Proxy(
  636. IeXdiServer * This,
  637. /* [in] */ BOOL fNewWaitOnConcurentUseFlag);
  638. void __RPC_STUB IeXdiServer_SetWaitOnConcurentUse_Stub(
  639. IRpcStubBuffer *This,
  640. IRpcChannelBuffer *_pRpcChannelBuffer,
  641. PRPC_MESSAGE _pRpcMessage,
  642. DWORD *_pdwStubPhase);
  643. HRESULT STDMETHODCALLTYPE IeXdiServer_GetRunStatus_Proxy(
  644. IeXdiServer * This,
  645. /* [out] */ PRUN_STATUS_TYPE persCurrent,
  646. /* [out] */ PHALT_REASON_TYPE pehrCurrent,
  647. /* [out] */ ADDRESS_TYPE *pCurrentExecAddress,
  648. /* [out] */ DWORD *pdwExceptionCode);
  649. void __RPC_STUB IeXdiServer_GetRunStatus_Stub(
  650. IRpcStubBuffer *This,
  651. IRpcChannelBuffer *_pRpcChannelBuffer,
  652. PRPC_MESSAGE _pRpcMessage,
  653. DWORD *_pdwStubPhase);
  654. HRESULT STDMETHODCALLTYPE IeXdiServer_GetLastException_Proxy(
  655. IeXdiServer * This,
  656. /* [out] */ PEXCEPTION_TYPE pexLast);
  657. void __RPC_STUB IeXdiServer_GetLastException_Stub(
  658. IRpcStubBuffer *This,
  659. IRpcChannelBuffer *_pRpcChannelBuffer,
  660. PRPC_MESSAGE _pRpcMessage,
  661. DWORD *_pdwStubPhase);
  662. HRESULT STDMETHODCALLTYPE IeXdiServer_Run_Proxy(
  663. IeXdiServer * This);
  664. void __RPC_STUB IeXdiServer_Run_Stub(
  665. IRpcStubBuffer *This,
  666. IRpcChannelBuffer *_pRpcChannelBuffer,
  667. PRPC_MESSAGE _pRpcMessage,
  668. DWORD *_pdwStubPhase);
  669. HRESULT STDMETHODCALLTYPE IeXdiServer_Halt_Proxy(
  670. IeXdiServer * This);
  671. void __RPC_STUB IeXdiServer_Halt_Stub(
  672. IRpcStubBuffer *This,
  673. IRpcChannelBuffer *_pRpcChannelBuffer,
  674. PRPC_MESSAGE _pRpcMessage,
  675. DWORD *_pdwStubPhase);
  676. HRESULT STDMETHODCALLTYPE IeXdiServer_DoSingleStep_Proxy(
  677. IeXdiServer * This);
  678. void __RPC_STUB IeXdiServer_DoSingleStep_Stub(
  679. IRpcStubBuffer *This,
  680. IRpcChannelBuffer *_pRpcChannelBuffer,
  681. PRPC_MESSAGE _pRpcMessage,
  682. DWORD *_pdwStubPhase);
  683. HRESULT STDMETHODCALLTYPE IeXdiServer_DoMultipleStep_Proxy(
  684. IeXdiServer * This,
  685. /* [in] */ DWORD dwNbInstructions);
  686. void __RPC_STUB IeXdiServer_DoMultipleStep_Stub(
  687. IRpcStubBuffer *This,
  688. IRpcChannelBuffer *_pRpcChannelBuffer,
  689. PRPC_MESSAGE _pRpcMessage,
  690. DWORD *_pdwStubPhase);
  691. HRESULT STDMETHODCALLTYPE IeXdiServer_DoRangeStep_Proxy(
  692. IeXdiServer * This,
  693. /* [in] */ ADDRESS_TYPE FirstAddress,
  694. /* [in] */ ADDRESS_TYPE LastAddress);
  695. void __RPC_STUB IeXdiServer_DoRangeStep_Stub(
  696. IRpcStubBuffer *This,
  697. IRpcChannelBuffer *_pRpcChannelBuffer,
  698. PRPC_MESSAGE _pRpcMessage,
  699. DWORD *_pdwStubPhase);
  700. HRESULT STDMETHODCALLTYPE IeXdiServer_Reboot_Proxy(
  701. IeXdiServer * This);
  702. void __RPC_STUB IeXdiServer_Reboot_Stub(
  703. IRpcStubBuffer *This,
  704. IRpcChannelBuffer *_pRpcChannelBuffer,
  705. PRPC_MESSAGE _pRpcMessage,
  706. DWORD *_pdwStubPhase);
  707. HRESULT STDMETHODCALLTYPE IeXdiServer_GetBpSupport_Proxy(
  708. IeXdiServer * This,
  709. /* [out] */ PBREAKPOINT_SUPPORT_TYPE pbps);
  710. void __RPC_STUB IeXdiServer_GetBpSupport_Stub(
  711. IRpcStubBuffer *This,
  712. IRpcChannelBuffer *_pRpcChannelBuffer,
  713. PRPC_MESSAGE _pRpcMessage,
  714. DWORD *_pdwStubPhase);
  715. HRESULT STDMETHODCALLTYPE IeXdiServer_GetNbCodeBpAvail_Proxy(
  716. IeXdiServer * This,
  717. /* [out] */ DWORD *pdwNbHwCodeBpAvail,
  718. /* [out] */ DWORD *pdwNbSwCodeBpAvail);
  719. void __RPC_STUB IeXdiServer_GetNbCodeBpAvail_Stub(
  720. IRpcStubBuffer *This,
  721. IRpcChannelBuffer *_pRpcChannelBuffer,
  722. PRPC_MESSAGE _pRpcMessage,
  723. DWORD *_pdwStubPhase);
  724. HRESULT STDMETHODCALLTYPE IeXdiServer_GetNbDataBpAvail_Proxy(
  725. IeXdiServer * This,
  726. /* [out] */ DWORD *pdwNbDataBpAvail);
  727. void __RPC_STUB IeXdiServer_GetNbDataBpAvail_Stub(
  728. IRpcStubBuffer *This,
  729. IRpcChannelBuffer *_pRpcChannelBuffer,
  730. PRPC_MESSAGE _pRpcMessage,
  731. DWORD *_pdwStubPhase);
  732. HRESULT STDMETHODCALLTYPE IeXdiServer_AddCodeBreakpoint_Proxy(
  733. IeXdiServer * This,
  734. /* [in] */ ADDRESS_TYPE Address,
  735. /* [in] */ CBP_KIND cbpk,
  736. /* [in] */ MEM_TYPE mt,
  737. /* [in] */ DWORD dwExecMode,
  738. /* [in] */ DWORD dwTotalBypassCount,
  739. /* [out] */ IeXdiCodeBreakpoint **ppieXdiCodeBreakpoint);
  740. void __RPC_STUB IeXdiServer_AddCodeBreakpoint_Stub(
  741. IRpcStubBuffer *This,
  742. IRpcChannelBuffer *_pRpcChannelBuffer,
  743. PRPC_MESSAGE _pRpcMessage,
  744. DWORD *_pdwStubPhase);
  745. HRESULT STDMETHODCALLTYPE IeXdiServer_DelCodeBreakpoint_Proxy(
  746. IeXdiServer * This,
  747. /* [in] */ IeXdiCodeBreakpoint *pieXdiCodeBreakpoint);
  748. void __RPC_STUB IeXdiServer_DelCodeBreakpoint_Stub(
  749. IRpcStubBuffer *This,
  750. IRpcChannelBuffer *_pRpcChannelBuffer,
  751. PRPC_MESSAGE _pRpcMessage,
  752. DWORD *_pdwStubPhase);
  753. HRESULT STDMETHODCALLTYPE IeXdiServer_AddDataBreakpoint_Proxy(
  754. IeXdiServer * This,
  755. /* [in] */ ADDRESS_TYPE Address,
  756. /* [in] */ ADDRESS_TYPE AddressMask,
  757. /* [in] */ DWORD dwData,
  758. /* [in] */ DWORD dwDataMask,
  759. /* [in] */ BYTE bAccessWidth,
  760. /* [in] */ MEM_TYPE mt,
  761. /* [in] */ BYTE bAddressSpace,
  762. /* [in] */ DATA_ACCESS_TYPE da,
  763. /* [in] */ DWORD dwTotalBypassCount,
  764. /* [out] */ IeXdiDataBreakpoint **ppieXdiDataBreakpoint);
  765. void __RPC_STUB IeXdiServer_AddDataBreakpoint_Stub(
  766. IRpcStubBuffer *This,
  767. IRpcChannelBuffer *_pRpcChannelBuffer,
  768. PRPC_MESSAGE _pRpcMessage,
  769. DWORD *_pdwStubPhase);
  770. HRESULT STDMETHODCALLTYPE IeXdiServer_DelDataBreakpoint_Proxy(
  771. IeXdiServer * This,
  772. /* [in] */ IeXdiDataBreakpoint *pieXdiDataBreakpoint);
  773. void __RPC_STUB IeXdiServer_DelDataBreakpoint_Stub(
  774. IRpcStubBuffer *This,
  775. IRpcChannelBuffer *_pRpcChannelBuffer,
  776. PRPC_MESSAGE _pRpcMessage,
  777. DWORD *_pdwStubPhase);
  778. HRESULT STDMETHODCALLTYPE IeXdiServer_EnumAllCodeBreakpoints_Proxy(
  779. IeXdiServer * This,
  780. /* [out] */ IeXdiEnumCodeBreakpoint **ppieXdiEnumCodeBreakpoint);
  781. void __RPC_STUB IeXdiServer_EnumAllCodeBreakpoints_Stub(
  782. IRpcStubBuffer *This,
  783. IRpcChannelBuffer *_pRpcChannelBuffer,
  784. PRPC_MESSAGE _pRpcMessage,
  785. DWORD *_pdwStubPhase);
  786. HRESULT STDMETHODCALLTYPE IeXdiServer_EnumAllDataBreakpoints_Proxy(
  787. IeXdiServer * This,
  788. /* [out] */ IeXdiEnumDataBreakpoint **ppieXdiEnumDataBreakpoint);
  789. void __RPC_STUB IeXdiServer_EnumAllDataBreakpoints_Stub(
  790. IRpcStubBuffer *This,
  791. IRpcChannelBuffer *_pRpcChannelBuffer,
  792. PRPC_MESSAGE _pRpcMessage,
  793. DWORD *_pdwStubPhase);
  794. HRESULT STDMETHODCALLTYPE IeXdiServer_EnumCodeBreakpointsInAddrRange_Proxy(
  795. IeXdiServer * This,
  796. /* [in] */ ADDRESS_TYPE FirstAddress,
  797. /* [in] */ ADDRESS_TYPE LastAddress,
  798. /* [out] */ IeXdiEnumCodeBreakpoint **ppieXdiEnumCodeBreakpoint);
  799. void __RPC_STUB IeXdiServer_EnumCodeBreakpointsInAddrRange_Stub(
  800. IRpcStubBuffer *This,
  801. IRpcChannelBuffer *_pRpcChannelBuffer,
  802. PRPC_MESSAGE _pRpcMessage,
  803. DWORD *_pdwStubPhase);
  804. HRESULT STDMETHODCALLTYPE IeXdiServer_EnumDataBreakpointsInAddrRange_Proxy(
  805. IeXdiServer * This,
  806. /* [in] */ ADDRESS_TYPE FirstAddress,
  807. /* [in] */ ADDRESS_TYPE LastAddress,
  808. /* [out] */ IeXdiEnumDataBreakpoint **ppieXdiEnumDataBreakpoint);
  809. void __RPC_STUB IeXdiServer_EnumDataBreakpointsInAddrRange_Stub(
  810. IRpcStubBuffer *This,
  811. IRpcChannelBuffer *_pRpcChannelBuffer,
  812. PRPC_MESSAGE _pRpcMessage,
  813. DWORD *_pdwStubPhase);
  814. HRESULT STDMETHODCALLTYPE IeXdiServer_StartNotifyingRunChg_Proxy(
  815. IeXdiServer * This,
  816. /* [in] */ IeXdiClientNotifyRunChg *pieXdiClientNotifyRunChg,
  817. /* [out] */ DWORD *pdwConnectionCookie);
  818. void __RPC_STUB IeXdiServer_StartNotifyingRunChg_Stub(
  819. IRpcStubBuffer *This,
  820. IRpcChannelBuffer *_pRpcChannelBuffer,
  821. PRPC_MESSAGE _pRpcMessage,
  822. DWORD *_pdwStubPhase);
  823. HRESULT STDMETHODCALLTYPE IeXdiServer_StopNotifyingRunChg_Proxy(
  824. IeXdiServer * This,
  825. /* [in] */ DWORD dwConnectionCookie);
  826. void __RPC_STUB IeXdiServer_StopNotifyingRunChg_Stub(
  827. IRpcStubBuffer *This,
  828. IRpcChannelBuffer *_pRpcChannelBuffer,
  829. PRPC_MESSAGE _pRpcMessage,
  830. DWORD *_pdwStubPhase);
  831. HRESULT STDMETHODCALLTYPE IeXdiServer_ReadVirtualMemory_Proxy(
  832. IeXdiServer * This,
  833. /* [in] */ ADDRESS_TYPE Address,
  834. /* [in] */ DWORD dwNbElemToRead,
  835. /* [in] */ BYTE bAccessWidth,
  836. /* [size_is][out] */ BYTE *pbReadBuffer,
  837. /* [out] */ DWORD *pdwNbElementEffectRead);
  838. void __RPC_STUB IeXdiServer_ReadVirtualMemory_Stub(
  839. IRpcStubBuffer *This,
  840. IRpcChannelBuffer *_pRpcChannelBuffer,
  841. PRPC_MESSAGE _pRpcMessage,
  842. DWORD *_pdwStubPhase);
  843. HRESULT STDMETHODCALLTYPE IeXdiServer_WriteVirtualMemory_Proxy(
  844. IeXdiServer * This,
  845. /* [in] */ ADDRESS_TYPE Address,
  846. /* [in] */ DWORD dwNbElemToWrite,
  847. /* [in] */ BYTE bAccessWidth,
  848. /* [size_is][in] */ const BYTE *pbWriteBuffer,
  849. /* [out] */ DWORD *pdwNbElementEffectWritten);
  850. void __RPC_STUB IeXdiServer_WriteVirtualMemory_Stub(
  851. IRpcStubBuffer *This,
  852. IRpcChannelBuffer *_pRpcChannelBuffer,
  853. PRPC_MESSAGE _pRpcMessage,
  854. DWORD *_pdwStubPhase);
  855. HRESULT STDMETHODCALLTYPE IeXdiServer_ReadPhysicalMemoryOrPeriphIO_Proxy(
  856. IeXdiServer * This,
  857. /* [in] */ ADDRESS_TYPE Address,
  858. /* [in] */ BYTE bAddressSpace,
  859. /* [in] */ DWORD dwNbElemToRead,
  860. /* [in] */ BYTE bAccessWidth,
  861. /* [size_is][out] */ BYTE *pbReadBuffer);
  862. void __RPC_STUB IeXdiServer_ReadPhysicalMemoryOrPeriphIO_Stub(
  863. IRpcStubBuffer *This,
  864. IRpcChannelBuffer *_pRpcChannelBuffer,
  865. PRPC_MESSAGE _pRpcMessage,
  866. DWORD *_pdwStubPhase);
  867. HRESULT STDMETHODCALLTYPE IeXdiServer_WritePhysicalMemoryOrPeriphIO_Proxy(
  868. IeXdiServer * This,
  869. /* [in] */ ADDRESS_TYPE Address,
  870. /* [in] */ BYTE bAddressSpace,
  871. /* [in] */ DWORD dwNbElemToWrite,
  872. /* [in] */ BYTE bAccessWidth,
  873. /* [size_is][in] */ const BYTE *pbWriteBuffer);
  874. void __RPC_STUB IeXdiServer_WritePhysicalMemoryOrPeriphIO_Stub(
  875. IRpcStubBuffer *This,
  876. IRpcChannelBuffer *_pRpcChannelBuffer,
  877. PRPC_MESSAGE _pRpcMessage,
  878. DWORD *_pdwStubPhase);
  879. HRESULT STDMETHODCALLTYPE IeXdiServer_StartNotifyingMemChg_Proxy(
  880. IeXdiServer * This,
  881. /* [in] */ IeXdiClientNotifyMemChg *pieXdiClientNotifyMemChg,
  882. /* [out] */ DWORD *pdwConnectionCookie);
  883. void __RPC_STUB IeXdiServer_StartNotifyingMemChg_Stub(
  884. IRpcStubBuffer *This,
  885. IRpcChannelBuffer *_pRpcChannelBuffer,
  886. PRPC_MESSAGE _pRpcMessage,
  887. DWORD *_pdwStubPhase);
  888. HRESULT STDMETHODCALLTYPE IeXdiServer_StopNotifyingMemChg_Proxy(
  889. IeXdiServer * This,
  890. /* [in] */ DWORD dwConnectionCookie);
  891. void __RPC_STUB IeXdiServer_StopNotifyingMemChg_Stub(
  892. IRpcStubBuffer *This,
  893. IRpcChannelBuffer *_pRpcChannelBuffer,
  894. PRPC_MESSAGE _pRpcMessage,
  895. DWORD *_pdwStubPhase);
  896. HRESULT STDMETHODCALLTYPE IeXdiServer_Ioctl_Proxy(
  897. IeXdiServer * This,
  898. /* [in] */ DWORD dwBuffInSize,
  899. /* [size_is][in] */ const BYTE *pbBufferIn,
  900. /* [in] */ DWORD dwBuffOutSize,
  901. /* [out] */ DWORD *pdwEffectBuffOutSize,
  902. /* [length_is][size_is][out] */ BYTE *pbBufferOut);
  903. void __RPC_STUB IeXdiServer_Ioctl_Stub(
  904. IRpcStubBuffer *This,
  905. IRpcChannelBuffer *_pRpcChannelBuffer,
  906. PRPC_MESSAGE _pRpcMessage,
  907. DWORD *_pdwStubPhase);
  908. #endif /* __IeXdiServer_INTERFACE_DEFINED__ */
  909. #ifndef __IeXdiCodeBreakpoint_INTERFACE_DEFINED__
  910. #define __IeXdiCodeBreakpoint_INTERFACE_DEFINED__
  911. /* interface IeXdiCodeBreakpoint */
  912. /* [ref][helpstring][uuid][object] */
  913. EXTERN_C const IID IID_IeXdiCodeBreakpoint;
  914. #if defined(__cplusplus) && !defined(CINTERFACE)
  915. MIDL_INTERFACE("47486F67-6461-6C65-5844-495342507401")
  916. IeXdiCodeBreakpoint : public IUnknown
  917. {
  918. public:
  919. virtual HRESULT STDMETHODCALLTYPE GetAttributes(
  920. /* [out] */ PADDRESS_TYPE pAddress,
  921. /* [out] */ PCBP_KIND pcbpk,
  922. /* [out] */ PMEM_TYPE pmt,
  923. /* [out] */ DWORD *pdwExecMode,
  924. /* [out] */ DWORD *pdwTotalBypassCount,
  925. /* [out] */ DWORD *pdwBypassedOccurences,
  926. /* [out] */ BOOL *pfEnabled) = 0;
  927. virtual HRESULT STDMETHODCALLTYPE SetState(
  928. /* [in] */ BOOL fEnabled,
  929. /* [in] */ BOOL fResetBypassedOccurences) = 0;
  930. };
  931. #else /* C style interface */
  932. typedef struct IeXdiCodeBreakpointVtbl
  933. {
  934. BEGIN_INTERFACE
  935. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  936. IeXdiCodeBreakpoint * This,
  937. /* [in] */ REFIID riid,
  938. /* [iid_is][out] */ void **ppvObject);
  939. ULONG ( STDMETHODCALLTYPE *AddRef )(
  940. IeXdiCodeBreakpoint * This);
  941. ULONG ( STDMETHODCALLTYPE *Release )(
  942. IeXdiCodeBreakpoint * This);
  943. HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
  944. IeXdiCodeBreakpoint * This,
  945. /* [out] */ PADDRESS_TYPE pAddress,
  946. /* [out] */ PCBP_KIND pcbpk,
  947. /* [out] */ PMEM_TYPE pmt,
  948. /* [out] */ DWORD *pdwExecMode,
  949. /* [out] */ DWORD *pdwTotalBypassCount,
  950. /* [out] */ DWORD *pdwBypassedOccurences,
  951. /* [out] */ BOOL *pfEnabled);
  952. HRESULT ( STDMETHODCALLTYPE *SetState )(
  953. IeXdiCodeBreakpoint * This,
  954. /* [in] */ BOOL fEnabled,
  955. /* [in] */ BOOL fResetBypassedOccurences);
  956. END_INTERFACE
  957. } IeXdiCodeBreakpointVtbl;
  958. interface IeXdiCodeBreakpoint
  959. {
  960. CONST_VTBL struct IeXdiCodeBreakpointVtbl *lpVtbl;
  961. };
  962. #ifdef COBJMACROS
  963. #define IeXdiCodeBreakpoint_QueryInterface(This,riid,ppvObject) \
  964. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  965. #define IeXdiCodeBreakpoint_AddRef(This) \
  966. (This)->lpVtbl -> AddRef(This)
  967. #define IeXdiCodeBreakpoint_Release(This) \
  968. (This)->lpVtbl -> Release(This)
  969. #define IeXdiCodeBreakpoint_GetAttributes(This,pAddress,pcbpk,pmt,pdwExecMode,pdwTotalBypassCount,pdwBypassedOccurences,pfEnabled) \
  970. (This)->lpVtbl -> GetAttributes(This,pAddress,pcbpk,pmt,pdwExecMode,pdwTotalBypassCount,pdwBypassedOccurences,pfEnabled)
  971. #define IeXdiCodeBreakpoint_SetState(This,fEnabled,fResetBypassedOccurences) \
  972. (This)->lpVtbl -> SetState(This,fEnabled,fResetBypassedOccurences)
  973. #endif /* COBJMACROS */
  974. #endif /* C style interface */
  975. HRESULT STDMETHODCALLTYPE IeXdiCodeBreakpoint_GetAttributes_Proxy(
  976. IeXdiCodeBreakpoint * This,
  977. /* [out] */ PADDRESS_TYPE pAddress,
  978. /* [out] */ PCBP_KIND pcbpk,
  979. /* [out] */ PMEM_TYPE pmt,
  980. /* [out] */ DWORD *pdwExecMode,
  981. /* [out] */ DWORD *pdwTotalBypassCount,
  982. /* [out] */ DWORD *pdwBypassedOccurences,
  983. /* [out] */ BOOL *pfEnabled);
  984. void __RPC_STUB IeXdiCodeBreakpoint_GetAttributes_Stub(
  985. IRpcStubBuffer *This,
  986. IRpcChannelBuffer *_pRpcChannelBuffer,
  987. PRPC_MESSAGE _pRpcMessage,
  988. DWORD *_pdwStubPhase);
  989. HRESULT STDMETHODCALLTYPE IeXdiCodeBreakpoint_SetState_Proxy(
  990. IeXdiCodeBreakpoint * This,
  991. /* [in] */ BOOL fEnabled,
  992. /* [in] */ BOOL fResetBypassedOccurences);
  993. void __RPC_STUB IeXdiCodeBreakpoint_SetState_Stub(
  994. IRpcStubBuffer *This,
  995. IRpcChannelBuffer *_pRpcChannelBuffer,
  996. PRPC_MESSAGE _pRpcMessage,
  997. DWORD *_pdwStubPhase);
  998. #endif /* __IeXdiCodeBreakpoint_INTERFACE_DEFINED__ */
  999. #ifndef __IeXdiDataBreakpoint_INTERFACE_DEFINED__
  1000. #define __IeXdiDataBreakpoint_INTERFACE_DEFINED__
  1001. /* interface IeXdiDataBreakpoint */
  1002. /* [ref][helpstring][uuid][object] */
  1003. EXTERN_C const IID IID_IeXdiDataBreakpoint;
  1004. #if defined(__cplusplus) && !defined(CINTERFACE)
  1005. MIDL_INTERFACE("47486F67-6461-6C65-5844-495357507400")
  1006. IeXdiDataBreakpoint : public IUnknown
  1007. {
  1008. public:
  1009. virtual HRESULT STDMETHODCALLTYPE GetAttributes(
  1010. /* [out] */ PADDRESS_TYPE pAddress,
  1011. /* [out] */ PADDRESS_TYPE pAddressMask,
  1012. /* [out] */ DWORD *pdwData,
  1013. /* [out] */ DWORD *pdwDataMask,
  1014. /* [out] */ BYTE *pbAccessWidth,
  1015. /* [out] */ PMEM_TYPE pmt,
  1016. /* [out] */ BYTE *pbAddressSpace,
  1017. /* [out] */ PDATA_ACCESS_TYPE pda,
  1018. /* [out] */ DWORD *pdwTotalBypassCount,
  1019. /* [out] */ DWORD *pdwBypassedOccurences,
  1020. /* [out] */ BOOL *pfEnabled) = 0;
  1021. virtual HRESULT STDMETHODCALLTYPE SetState(
  1022. /* [in] */ BOOL fEnabled,
  1023. /* [in] */ BOOL fResetBypassedOccurences) = 0;
  1024. };
  1025. #else /* C style interface */
  1026. typedef struct IeXdiDataBreakpointVtbl
  1027. {
  1028. BEGIN_INTERFACE
  1029. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1030. IeXdiDataBreakpoint * This,
  1031. /* [in] */ REFIID riid,
  1032. /* [iid_is][out] */ void **ppvObject);
  1033. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1034. IeXdiDataBreakpoint * This);
  1035. ULONG ( STDMETHODCALLTYPE *Release )(
  1036. IeXdiDataBreakpoint * This);
  1037. HRESULT ( STDMETHODCALLTYPE *GetAttributes )(
  1038. IeXdiDataBreakpoint * This,
  1039. /* [out] */ PADDRESS_TYPE pAddress,
  1040. /* [out] */ PADDRESS_TYPE pAddressMask,
  1041. /* [out] */ DWORD *pdwData,
  1042. /* [out] */ DWORD *pdwDataMask,
  1043. /* [out] */ BYTE *pbAccessWidth,
  1044. /* [out] */ PMEM_TYPE pmt,
  1045. /* [out] */ BYTE *pbAddressSpace,
  1046. /* [out] */ PDATA_ACCESS_TYPE pda,
  1047. /* [out] */ DWORD *pdwTotalBypassCount,
  1048. /* [out] */ DWORD *pdwBypassedOccurences,
  1049. /* [out] */ BOOL *pfEnabled);
  1050. HRESULT ( STDMETHODCALLTYPE *SetState )(
  1051. IeXdiDataBreakpoint * This,
  1052. /* [in] */ BOOL fEnabled,
  1053. /* [in] */ BOOL fResetBypassedOccurences);
  1054. END_INTERFACE
  1055. } IeXdiDataBreakpointVtbl;
  1056. interface IeXdiDataBreakpoint
  1057. {
  1058. CONST_VTBL struct IeXdiDataBreakpointVtbl *lpVtbl;
  1059. };
  1060. #ifdef COBJMACROS
  1061. #define IeXdiDataBreakpoint_QueryInterface(This,riid,ppvObject) \
  1062. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1063. #define IeXdiDataBreakpoint_AddRef(This) \
  1064. (This)->lpVtbl -> AddRef(This)
  1065. #define IeXdiDataBreakpoint_Release(This) \
  1066. (This)->lpVtbl -> Release(This)
  1067. #define IeXdiDataBreakpoint_GetAttributes(This,pAddress,pAddressMask,pdwData,pdwDataMask,pbAccessWidth,pmt,pbAddressSpace,pda,pdwTotalBypassCount,pdwBypassedOccurences,pfEnabled) \
  1068. (This)->lpVtbl -> GetAttributes(This,pAddress,pAddressMask,pdwData,pdwDataMask,pbAccessWidth,pmt,pbAddressSpace,pda,pdwTotalBypassCount,pdwBypassedOccurences,pfEnabled)
  1069. #define IeXdiDataBreakpoint_SetState(This,fEnabled,fResetBypassedOccurences) \
  1070. (This)->lpVtbl -> SetState(This,fEnabled,fResetBypassedOccurences)
  1071. #endif /* COBJMACROS */
  1072. #endif /* C style interface */
  1073. HRESULT STDMETHODCALLTYPE IeXdiDataBreakpoint_GetAttributes_Proxy(
  1074. IeXdiDataBreakpoint * This,
  1075. /* [out] */ PADDRESS_TYPE pAddress,
  1076. /* [out] */ PADDRESS_TYPE pAddressMask,
  1077. /* [out] */ DWORD *pdwData,
  1078. /* [out] */ DWORD *pdwDataMask,
  1079. /* [out] */ BYTE *pbAccessWidth,
  1080. /* [out] */ PMEM_TYPE pmt,
  1081. /* [out] */ BYTE *pbAddressSpace,
  1082. /* [out] */ PDATA_ACCESS_TYPE pda,
  1083. /* [out] */ DWORD *pdwTotalBypassCount,
  1084. /* [out] */ DWORD *pdwBypassedOccurences,
  1085. /* [out] */ BOOL *pfEnabled);
  1086. void __RPC_STUB IeXdiDataBreakpoint_GetAttributes_Stub(
  1087. IRpcStubBuffer *This,
  1088. IRpcChannelBuffer *_pRpcChannelBuffer,
  1089. PRPC_MESSAGE _pRpcMessage,
  1090. DWORD *_pdwStubPhase);
  1091. HRESULT STDMETHODCALLTYPE IeXdiDataBreakpoint_SetState_Proxy(
  1092. IeXdiDataBreakpoint * This,
  1093. /* [in] */ BOOL fEnabled,
  1094. /* [in] */ BOOL fResetBypassedOccurences);
  1095. void __RPC_STUB IeXdiDataBreakpoint_SetState_Stub(
  1096. IRpcStubBuffer *This,
  1097. IRpcChannelBuffer *_pRpcChannelBuffer,
  1098. PRPC_MESSAGE _pRpcMessage,
  1099. DWORD *_pdwStubPhase);
  1100. #endif /* __IeXdiDataBreakpoint_INTERFACE_DEFINED__ */
  1101. #ifndef __IeXdiEnumCodeBreakpoint_INTERFACE_DEFINED__
  1102. #define __IeXdiEnumCodeBreakpoint_INTERFACE_DEFINED__
  1103. /* interface IeXdiEnumCodeBreakpoint */
  1104. /* [ref][helpstring][uuid][object] */
  1105. EXTERN_C const IID IID_IeXdiEnumCodeBreakpoint;
  1106. #if defined(__cplusplus) && !defined(CINTERFACE)
  1107. MIDL_INTERFACE("47486F67-6461-6C65-5844-495345425074")
  1108. IeXdiEnumCodeBreakpoint : public IUnknown
  1109. {
  1110. public:
  1111. virtual HRESULT STDMETHODCALLTYPE Next(
  1112. /* [in] */ DWORD celt,
  1113. /* [length_is][size_is][out] */ IeXdiCodeBreakpoint *apieXdiCodeBreakpoint[ ],
  1114. /* [out] */ DWORD *pceltFetched) = 0;
  1115. virtual HRESULT STDMETHODCALLTYPE Skip(
  1116. /* [in] */ DWORD celt) = 0;
  1117. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  1118. virtual HRESULT STDMETHODCALLTYPE GetCount(
  1119. /* [out] */ DWORD *pcelt) = 0;
  1120. virtual HRESULT STDMETHODCALLTYPE GetNext(
  1121. /* [out] */ IeXdiCodeBreakpoint **ppieXdiCodeBreakpoint) = 0;
  1122. virtual HRESULT STDMETHODCALLTYPE DisableAll( void) = 0;
  1123. virtual HRESULT STDMETHODCALLTYPE EnableAll( void) = 0;
  1124. };
  1125. #else /* C style interface */
  1126. typedef struct IeXdiEnumCodeBreakpointVtbl
  1127. {
  1128. BEGIN_INTERFACE
  1129. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1130. IeXdiEnumCodeBreakpoint * This,
  1131. /* [in] */ REFIID riid,
  1132. /* [iid_is][out] */ void **ppvObject);
  1133. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1134. IeXdiEnumCodeBreakpoint * This);
  1135. ULONG ( STDMETHODCALLTYPE *Release )(
  1136. IeXdiEnumCodeBreakpoint * This);
  1137. HRESULT ( STDMETHODCALLTYPE *Next )(
  1138. IeXdiEnumCodeBreakpoint * This,
  1139. /* [in] */ DWORD celt,
  1140. /* [length_is][size_is][out] */ IeXdiCodeBreakpoint *apieXdiCodeBreakpoint[ ],
  1141. /* [out] */ DWORD *pceltFetched);
  1142. HRESULT ( STDMETHODCALLTYPE *Skip )(
  1143. IeXdiEnumCodeBreakpoint * This,
  1144. /* [in] */ DWORD celt);
  1145. HRESULT ( STDMETHODCALLTYPE *Reset )(
  1146. IeXdiEnumCodeBreakpoint * This);
  1147. HRESULT ( STDMETHODCALLTYPE *GetCount )(
  1148. IeXdiEnumCodeBreakpoint * This,
  1149. /* [out] */ DWORD *pcelt);
  1150. HRESULT ( STDMETHODCALLTYPE *GetNext )(
  1151. IeXdiEnumCodeBreakpoint * This,
  1152. /* [out] */ IeXdiCodeBreakpoint **ppieXdiCodeBreakpoint);
  1153. HRESULT ( STDMETHODCALLTYPE *DisableAll )(
  1154. IeXdiEnumCodeBreakpoint * This);
  1155. HRESULT ( STDMETHODCALLTYPE *EnableAll )(
  1156. IeXdiEnumCodeBreakpoint * This);
  1157. END_INTERFACE
  1158. } IeXdiEnumCodeBreakpointVtbl;
  1159. interface IeXdiEnumCodeBreakpoint
  1160. {
  1161. CONST_VTBL struct IeXdiEnumCodeBreakpointVtbl *lpVtbl;
  1162. };
  1163. #ifdef COBJMACROS
  1164. #define IeXdiEnumCodeBreakpoint_QueryInterface(This,riid,ppvObject) \
  1165. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1166. #define IeXdiEnumCodeBreakpoint_AddRef(This) \
  1167. (This)->lpVtbl -> AddRef(This)
  1168. #define IeXdiEnumCodeBreakpoint_Release(This) \
  1169. (This)->lpVtbl -> Release(This)
  1170. #define IeXdiEnumCodeBreakpoint_Next(This,celt,apieXdiCodeBreakpoint,pceltFetched) \
  1171. (This)->lpVtbl -> Next(This,celt,apieXdiCodeBreakpoint,pceltFetched)
  1172. #define IeXdiEnumCodeBreakpoint_Skip(This,celt) \
  1173. (This)->lpVtbl -> Skip(This,celt)
  1174. #define IeXdiEnumCodeBreakpoint_Reset(This) \
  1175. (This)->lpVtbl -> Reset(This)
  1176. #define IeXdiEnumCodeBreakpoint_GetCount(This,pcelt) \
  1177. (This)->lpVtbl -> GetCount(This,pcelt)
  1178. #define IeXdiEnumCodeBreakpoint_GetNext(This,ppieXdiCodeBreakpoint) \
  1179. (This)->lpVtbl -> GetNext(This,ppieXdiCodeBreakpoint)
  1180. #define IeXdiEnumCodeBreakpoint_DisableAll(This) \
  1181. (This)->lpVtbl -> DisableAll(This)
  1182. #define IeXdiEnumCodeBreakpoint_EnableAll(This) \
  1183. (This)->lpVtbl -> EnableAll(This)
  1184. #endif /* COBJMACROS */
  1185. #endif /* C style interface */
  1186. HRESULT STDMETHODCALLTYPE IeXdiEnumCodeBreakpoint_Next_Proxy(
  1187. IeXdiEnumCodeBreakpoint * This,
  1188. /* [in] */ DWORD celt,
  1189. /* [length_is][size_is][out] */ IeXdiCodeBreakpoint *apieXdiCodeBreakpoint[ ],
  1190. /* [out] */ DWORD *pceltFetched);
  1191. void __RPC_STUB IeXdiEnumCodeBreakpoint_Next_Stub(
  1192. IRpcStubBuffer *This,
  1193. IRpcChannelBuffer *_pRpcChannelBuffer,
  1194. PRPC_MESSAGE _pRpcMessage,
  1195. DWORD *_pdwStubPhase);
  1196. HRESULT STDMETHODCALLTYPE IeXdiEnumCodeBreakpoint_Skip_Proxy(
  1197. IeXdiEnumCodeBreakpoint * This,
  1198. /* [in] */ DWORD celt);
  1199. void __RPC_STUB IeXdiEnumCodeBreakpoint_Skip_Stub(
  1200. IRpcStubBuffer *This,
  1201. IRpcChannelBuffer *_pRpcChannelBuffer,
  1202. PRPC_MESSAGE _pRpcMessage,
  1203. DWORD *_pdwStubPhase);
  1204. HRESULT STDMETHODCALLTYPE IeXdiEnumCodeBreakpoint_Reset_Proxy(
  1205. IeXdiEnumCodeBreakpoint * This);
  1206. void __RPC_STUB IeXdiEnumCodeBreakpoint_Reset_Stub(
  1207. IRpcStubBuffer *This,
  1208. IRpcChannelBuffer *_pRpcChannelBuffer,
  1209. PRPC_MESSAGE _pRpcMessage,
  1210. DWORD *_pdwStubPhase);
  1211. HRESULT STDMETHODCALLTYPE IeXdiEnumCodeBreakpoint_GetCount_Proxy(
  1212. IeXdiEnumCodeBreakpoint * This,
  1213. /* [out] */ DWORD *pcelt);
  1214. void __RPC_STUB IeXdiEnumCodeBreakpoint_GetCount_Stub(
  1215. IRpcStubBuffer *This,
  1216. IRpcChannelBuffer *_pRpcChannelBuffer,
  1217. PRPC_MESSAGE _pRpcMessage,
  1218. DWORD *_pdwStubPhase);
  1219. HRESULT STDMETHODCALLTYPE IeXdiEnumCodeBreakpoint_GetNext_Proxy(
  1220. IeXdiEnumCodeBreakpoint * This,
  1221. /* [out] */ IeXdiCodeBreakpoint **ppieXdiCodeBreakpoint);
  1222. void __RPC_STUB IeXdiEnumCodeBreakpoint_GetNext_Stub(
  1223. IRpcStubBuffer *This,
  1224. IRpcChannelBuffer *_pRpcChannelBuffer,
  1225. PRPC_MESSAGE _pRpcMessage,
  1226. DWORD *_pdwStubPhase);
  1227. HRESULT STDMETHODCALLTYPE IeXdiEnumCodeBreakpoint_DisableAll_Proxy(
  1228. IeXdiEnumCodeBreakpoint * This);
  1229. void __RPC_STUB IeXdiEnumCodeBreakpoint_DisableAll_Stub(
  1230. IRpcStubBuffer *This,
  1231. IRpcChannelBuffer *_pRpcChannelBuffer,
  1232. PRPC_MESSAGE _pRpcMessage,
  1233. DWORD *_pdwStubPhase);
  1234. HRESULT STDMETHODCALLTYPE IeXdiEnumCodeBreakpoint_EnableAll_Proxy(
  1235. IeXdiEnumCodeBreakpoint * This);
  1236. void __RPC_STUB IeXdiEnumCodeBreakpoint_EnableAll_Stub(
  1237. IRpcStubBuffer *This,
  1238. IRpcChannelBuffer *_pRpcChannelBuffer,
  1239. PRPC_MESSAGE _pRpcMessage,
  1240. DWORD *_pdwStubPhase);
  1241. #endif /* __IeXdiEnumCodeBreakpoint_INTERFACE_DEFINED__ */
  1242. #ifndef __IeXdiEnumDataBreakpoint_INTERFACE_DEFINED__
  1243. #define __IeXdiEnumDataBreakpoint_INTERFACE_DEFINED__
  1244. /* interface IeXdiEnumDataBreakpoint */
  1245. /* [ref][helpstring][uuid][object] */
  1246. EXTERN_C const IID IID_IeXdiEnumDataBreakpoint;
  1247. #if defined(__cplusplus) && !defined(CINTERFACE)
  1248. MIDL_INTERFACE("47486F67-6461-6C65-5844-495345575074")
  1249. IeXdiEnumDataBreakpoint : public IUnknown
  1250. {
  1251. public:
  1252. virtual HRESULT STDMETHODCALLTYPE Next(
  1253. /* [in] */ DWORD celt,
  1254. /* [length_is][size_is][out] */ IeXdiDataBreakpoint *apieXdiDataBreakpoint[ ],
  1255. /* [out] */ DWORD *pceltFetched) = 0;
  1256. virtual HRESULT STDMETHODCALLTYPE Skip(
  1257. /* [in] */ DWORD celt) = 0;
  1258. virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
  1259. virtual HRESULT STDMETHODCALLTYPE GetCount(
  1260. /* [out] */ DWORD *pcelt) = 0;
  1261. virtual HRESULT STDMETHODCALLTYPE GetNext(
  1262. /* [out] */ IeXdiDataBreakpoint **ppieXdiDataBreakpoint) = 0;
  1263. virtual HRESULT STDMETHODCALLTYPE DisableAll( void) = 0;
  1264. virtual HRESULT STDMETHODCALLTYPE EnableAll( void) = 0;
  1265. };
  1266. #else /* C style interface */
  1267. typedef struct IeXdiEnumDataBreakpointVtbl
  1268. {
  1269. BEGIN_INTERFACE
  1270. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1271. IeXdiEnumDataBreakpoint * This,
  1272. /* [in] */ REFIID riid,
  1273. /* [iid_is][out] */ void **ppvObject);
  1274. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1275. IeXdiEnumDataBreakpoint * This);
  1276. ULONG ( STDMETHODCALLTYPE *Release )(
  1277. IeXdiEnumDataBreakpoint * This);
  1278. HRESULT ( STDMETHODCALLTYPE *Next )(
  1279. IeXdiEnumDataBreakpoint * This,
  1280. /* [in] */ DWORD celt,
  1281. /* [length_is][size_is][out] */ IeXdiDataBreakpoint *apieXdiDataBreakpoint[ ],
  1282. /* [out] */ DWORD *pceltFetched);
  1283. HRESULT ( STDMETHODCALLTYPE *Skip )(
  1284. IeXdiEnumDataBreakpoint * This,
  1285. /* [in] */ DWORD celt);
  1286. HRESULT ( STDMETHODCALLTYPE *Reset )(
  1287. IeXdiEnumDataBreakpoint * This);
  1288. HRESULT ( STDMETHODCALLTYPE *GetCount )(
  1289. IeXdiEnumDataBreakpoint * This,
  1290. /* [out] */ DWORD *pcelt);
  1291. HRESULT ( STDMETHODCALLTYPE *GetNext )(
  1292. IeXdiEnumDataBreakpoint * This,
  1293. /* [out] */ IeXdiDataBreakpoint **ppieXdiDataBreakpoint);
  1294. HRESULT ( STDMETHODCALLTYPE *DisableAll )(
  1295. IeXdiEnumDataBreakpoint * This);
  1296. HRESULT ( STDMETHODCALLTYPE *EnableAll )(
  1297. IeXdiEnumDataBreakpoint * This);
  1298. END_INTERFACE
  1299. } IeXdiEnumDataBreakpointVtbl;
  1300. interface IeXdiEnumDataBreakpoint
  1301. {
  1302. CONST_VTBL struct IeXdiEnumDataBreakpointVtbl *lpVtbl;
  1303. };
  1304. #ifdef COBJMACROS
  1305. #define IeXdiEnumDataBreakpoint_QueryInterface(This,riid,ppvObject) \
  1306. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1307. #define IeXdiEnumDataBreakpoint_AddRef(This) \
  1308. (This)->lpVtbl -> AddRef(This)
  1309. #define IeXdiEnumDataBreakpoint_Release(This) \
  1310. (This)->lpVtbl -> Release(This)
  1311. #define IeXdiEnumDataBreakpoint_Next(This,celt,apieXdiDataBreakpoint,pceltFetched) \
  1312. (This)->lpVtbl -> Next(This,celt,apieXdiDataBreakpoint,pceltFetched)
  1313. #define IeXdiEnumDataBreakpoint_Skip(This,celt) \
  1314. (This)->lpVtbl -> Skip(This,celt)
  1315. #define IeXdiEnumDataBreakpoint_Reset(This) \
  1316. (This)->lpVtbl -> Reset(This)
  1317. #define IeXdiEnumDataBreakpoint_GetCount(This,pcelt) \
  1318. (This)->lpVtbl -> GetCount(This,pcelt)
  1319. #define IeXdiEnumDataBreakpoint_GetNext(This,ppieXdiDataBreakpoint) \
  1320. (This)->lpVtbl -> GetNext(This,ppieXdiDataBreakpoint)
  1321. #define IeXdiEnumDataBreakpoint_DisableAll(This) \
  1322. (This)->lpVtbl -> DisableAll(This)
  1323. #define IeXdiEnumDataBreakpoint_EnableAll(This) \
  1324. (This)->lpVtbl -> EnableAll(This)
  1325. #endif /* COBJMACROS */
  1326. #endif /* C style interface */
  1327. HRESULT STDMETHODCALLTYPE IeXdiEnumDataBreakpoint_Next_Proxy(
  1328. IeXdiEnumDataBreakpoint * This,
  1329. /* [in] */ DWORD celt,
  1330. /* [length_is][size_is][out] */ IeXdiDataBreakpoint *apieXdiDataBreakpoint[ ],
  1331. /* [out] */ DWORD *pceltFetched);
  1332. void __RPC_STUB IeXdiEnumDataBreakpoint_Next_Stub(
  1333. IRpcStubBuffer *This,
  1334. IRpcChannelBuffer *_pRpcChannelBuffer,
  1335. PRPC_MESSAGE _pRpcMessage,
  1336. DWORD *_pdwStubPhase);
  1337. HRESULT STDMETHODCALLTYPE IeXdiEnumDataBreakpoint_Skip_Proxy(
  1338. IeXdiEnumDataBreakpoint * This,
  1339. /* [in] */ DWORD celt);
  1340. void __RPC_STUB IeXdiEnumDataBreakpoint_Skip_Stub(
  1341. IRpcStubBuffer *This,
  1342. IRpcChannelBuffer *_pRpcChannelBuffer,
  1343. PRPC_MESSAGE _pRpcMessage,
  1344. DWORD *_pdwStubPhase);
  1345. HRESULT STDMETHODCALLTYPE IeXdiEnumDataBreakpoint_Reset_Proxy(
  1346. IeXdiEnumDataBreakpoint * This);
  1347. void __RPC_STUB IeXdiEnumDataBreakpoint_Reset_Stub(
  1348. IRpcStubBuffer *This,
  1349. IRpcChannelBuffer *_pRpcChannelBuffer,
  1350. PRPC_MESSAGE _pRpcMessage,
  1351. DWORD *_pdwStubPhase);
  1352. HRESULT STDMETHODCALLTYPE IeXdiEnumDataBreakpoint_GetCount_Proxy(
  1353. IeXdiEnumDataBreakpoint * This,
  1354. /* [out] */ DWORD *pcelt);
  1355. void __RPC_STUB IeXdiEnumDataBreakpoint_GetCount_Stub(
  1356. IRpcStubBuffer *This,
  1357. IRpcChannelBuffer *_pRpcChannelBuffer,
  1358. PRPC_MESSAGE _pRpcMessage,
  1359. DWORD *_pdwStubPhase);
  1360. HRESULT STDMETHODCALLTYPE IeXdiEnumDataBreakpoint_GetNext_Proxy(
  1361. IeXdiEnumDataBreakpoint * This,
  1362. /* [out] */ IeXdiDataBreakpoint **ppieXdiDataBreakpoint);
  1363. void __RPC_STUB IeXdiEnumDataBreakpoint_GetNext_Stub(
  1364. IRpcStubBuffer *This,
  1365. IRpcChannelBuffer *_pRpcChannelBuffer,
  1366. PRPC_MESSAGE _pRpcMessage,
  1367. DWORD *_pdwStubPhase);
  1368. HRESULT STDMETHODCALLTYPE IeXdiEnumDataBreakpoint_DisableAll_Proxy(
  1369. IeXdiEnumDataBreakpoint * This);
  1370. void __RPC_STUB IeXdiEnumDataBreakpoint_DisableAll_Stub(
  1371. IRpcStubBuffer *This,
  1372. IRpcChannelBuffer *_pRpcChannelBuffer,
  1373. PRPC_MESSAGE _pRpcMessage,
  1374. DWORD *_pdwStubPhase);
  1375. HRESULT STDMETHODCALLTYPE IeXdiEnumDataBreakpoint_EnableAll_Proxy(
  1376. IeXdiEnumDataBreakpoint * This);
  1377. void __RPC_STUB IeXdiEnumDataBreakpoint_EnableAll_Stub(
  1378. IRpcStubBuffer *This,
  1379. IRpcChannelBuffer *_pRpcChannelBuffer,
  1380. PRPC_MESSAGE _pRpcMessage,
  1381. DWORD *_pdwStubPhase);
  1382. #endif /* __IeXdiEnumDataBreakpoint_INTERFACE_DEFINED__ */
  1383. /* interface __MIDL_itf_exdi_0261 */
  1384. /* [local] */
  1385. #define SIZE_OF_80387_REGISTERS_IN_BYTES ( 80 )
  1386. typedef struct _CONTEXT_X86
  1387. {
  1388. struct
  1389. {
  1390. BOOL fSegmentRegs;
  1391. BOOL fControlRegs;
  1392. BOOL fIntegerRegs;
  1393. BOOL fFloatingPointRegs;
  1394. BOOL fDebugRegs;
  1395. } RegGroupSelection;
  1396. DWORD SegCs;
  1397. DWORD SegSs;
  1398. DWORD SegGs;
  1399. DWORD SegFs;
  1400. DWORD SegEs;
  1401. DWORD SegDs;
  1402. DWORD EFlags;
  1403. DWORD Ebp;
  1404. DWORD Eip;
  1405. DWORD Esp;
  1406. DWORD Eax;
  1407. DWORD Ebx;
  1408. DWORD Ecx;
  1409. DWORD Edx;
  1410. DWORD Esi;
  1411. DWORD Edi;
  1412. DWORD ControlWord;
  1413. DWORD StatusWord;
  1414. DWORD TagWord;
  1415. DWORD ErrorOffset;
  1416. DWORD ErrorSelector;
  1417. DWORD DataOffset;
  1418. DWORD DataSelector;
  1419. BYTE RegisterArea[ 80 ];
  1420. DWORD Cr0NpxState;
  1421. DWORD Dr0;
  1422. DWORD Dr1;
  1423. DWORD Dr2;
  1424. DWORD Dr3;
  1425. DWORD Dr6;
  1426. DWORD Dr7;
  1427. } CONTEXT_X86;
  1428. typedef struct _CONTEXT_X86 *PCONTEXT_X86;
  1429. extern RPC_IF_HANDLE __MIDL_itf_exdi_0261_v0_0_c_ifspec;
  1430. extern RPC_IF_HANDLE __MIDL_itf_exdi_0261_v0_0_s_ifspec;
  1431. #ifndef __IeXdiX86Context_INTERFACE_DEFINED__
  1432. #define __IeXdiX86Context_INTERFACE_DEFINED__
  1433. /* interface IeXdiX86Context */
  1434. /* [ref][helpstring][uuid][object] */
  1435. EXTERN_C const IID IID_IeXdiX86Context;
  1436. #if defined(__cplusplus) && !defined(CINTERFACE)
  1437. MIDL_INTERFACE("47486F67-6461-6C65-5844-495358383643")
  1438. IeXdiX86Context : public IUnknown
  1439. {
  1440. public:
  1441. virtual HRESULT STDMETHODCALLTYPE GetContext(
  1442. /* [out][in] */ PCONTEXT_X86 pContext) = 0;
  1443. virtual HRESULT STDMETHODCALLTYPE SetContext(
  1444. /* [in] */ CONTEXT_X86 Context) = 0;
  1445. };
  1446. #else /* C style interface */
  1447. typedef struct IeXdiX86ContextVtbl
  1448. {
  1449. BEGIN_INTERFACE
  1450. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1451. IeXdiX86Context * This,
  1452. /* [in] */ REFIID riid,
  1453. /* [iid_is][out] */ void **ppvObject);
  1454. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1455. IeXdiX86Context * This);
  1456. ULONG ( STDMETHODCALLTYPE *Release )(
  1457. IeXdiX86Context * This);
  1458. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  1459. IeXdiX86Context * This,
  1460. /* [out][in] */ PCONTEXT_X86 pContext);
  1461. HRESULT ( STDMETHODCALLTYPE *SetContext )(
  1462. IeXdiX86Context * This,
  1463. /* [in] */ CONTEXT_X86 Context);
  1464. END_INTERFACE
  1465. } IeXdiX86ContextVtbl;
  1466. interface IeXdiX86Context
  1467. {
  1468. CONST_VTBL struct IeXdiX86ContextVtbl *lpVtbl;
  1469. };
  1470. #ifdef COBJMACROS
  1471. #define IeXdiX86Context_QueryInterface(This,riid,ppvObject) \
  1472. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1473. #define IeXdiX86Context_AddRef(This) \
  1474. (This)->lpVtbl -> AddRef(This)
  1475. #define IeXdiX86Context_Release(This) \
  1476. (This)->lpVtbl -> Release(This)
  1477. #define IeXdiX86Context_GetContext(This,pContext) \
  1478. (This)->lpVtbl -> GetContext(This,pContext)
  1479. #define IeXdiX86Context_SetContext(This,Context) \
  1480. (This)->lpVtbl -> SetContext(This,Context)
  1481. #endif /* COBJMACROS */
  1482. #endif /* C style interface */
  1483. HRESULT STDMETHODCALLTYPE IeXdiX86Context_GetContext_Proxy(
  1484. IeXdiX86Context * This,
  1485. /* [out][in] */ PCONTEXT_X86 pContext);
  1486. void __RPC_STUB IeXdiX86Context_GetContext_Stub(
  1487. IRpcStubBuffer *This,
  1488. IRpcChannelBuffer *_pRpcChannelBuffer,
  1489. PRPC_MESSAGE _pRpcMessage,
  1490. DWORD *_pdwStubPhase);
  1491. HRESULT STDMETHODCALLTYPE IeXdiX86Context_SetContext_Proxy(
  1492. IeXdiX86Context * This,
  1493. /* [in] */ CONTEXT_X86 Context);
  1494. void __RPC_STUB IeXdiX86Context_SetContext_Stub(
  1495. IRpcStubBuffer *This,
  1496. IRpcChannelBuffer *_pRpcChannelBuffer,
  1497. PRPC_MESSAGE _pRpcMessage,
  1498. DWORD *_pdwStubPhase);
  1499. #endif /* __IeXdiX86Context_INTERFACE_DEFINED__ */
  1500. /* interface __MIDL_itf_exdi_0262 */
  1501. /* [local] */
  1502. typedef struct _X86_SEG_DESC_INFO
  1503. {
  1504. DWORD Base;
  1505. DWORD Limit;
  1506. DWORD Flags;
  1507. } X86_SEG_DESC_INFO;
  1508. typedef struct _X86_SSE_REG
  1509. {
  1510. DWORD Reg0;
  1511. DWORD Reg1;
  1512. DWORD Reg2;
  1513. DWORD Reg3;
  1514. } X86_SSE_REG;
  1515. typedef struct _CONTEXT_X86_EX
  1516. {
  1517. struct
  1518. {
  1519. BOOL fSegmentRegs;
  1520. BOOL fControlRegs;
  1521. BOOL fIntegerRegs;
  1522. BOOL fFloatingPointRegs;
  1523. BOOL fDebugRegs;
  1524. BOOL fSegmentDescriptors;
  1525. BOOL fSSERegisters;
  1526. BOOL fSystemRegisters;
  1527. } RegGroupSelection;
  1528. DWORD SegCs;
  1529. DWORD SegSs;
  1530. DWORD SegGs;
  1531. DWORD SegFs;
  1532. DWORD SegEs;
  1533. DWORD SegDs;
  1534. DWORD EFlags;
  1535. DWORD Ebp;
  1536. DWORD Eip;
  1537. DWORD Esp;
  1538. DWORD Eax;
  1539. DWORD Ebx;
  1540. DWORD Ecx;
  1541. DWORD Edx;
  1542. DWORD Esi;
  1543. DWORD Edi;
  1544. DWORD ControlWord;
  1545. DWORD StatusWord;
  1546. DWORD TagWord;
  1547. DWORD ErrorOffset;
  1548. DWORD ErrorSelector;
  1549. DWORD DataOffset;
  1550. DWORD DataSelector;
  1551. BYTE RegisterArea[ 80 ];
  1552. DWORD Cr0NpxState;
  1553. DWORD Dr0;
  1554. DWORD Dr1;
  1555. DWORD Dr2;
  1556. DWORD Dr3;
  1557. DWORD Dr6;
  1558. DWORD Dr7;
  1559. X86_SEG_DESC_INFO DescriptorCs;
  1560. X86_SEG_DESC_INFO DescriptorSs;
  1561. X86_SEG_DESC_INFO DescriptorGs;
  1562. X86_SEG_DESC_INFO DescriptorFs;
  1563. X86_SEG_DESC_INFO DescriptorEs;
  1564. X86_SEG_DESC_INFO DescriptorDs;
  1565. DWORD IdtBase;
  1566. DWORD IdtLimit;
  1567. DWORD GdtBase;
  1568. DWORD GdtLimit;
  1569. DWORD Ldtr;
  1570. X86_SEG_DESC_INFO DescriptorLdtr;
  1571. DWORD Tr;
  1572. X86_SEG_DESC_INFO DescriptorTr;
  1573. DWORD Cr0;
  1574. DWORD Cr2;
  1575. DWORD Cr3;
  1576. DWORD Cr4;
  1577. DWORD Mxcsr;
  1578. X86_SSE_REG Sse[ 8 ];
  1579. } CONTEXT_X86_EX;
  1580. typedef struct _CONTEXT_X86_EX *PCONTEXT_X86_EX;
  1581. extern RPC_IF_HANDLE __MIDL_itf_exdi_0262_v0_0_c_ifspec;
  1582. extern RPC_IF_HANDLE __MIDL_itf_exdi_0262_v0_0_s_ifspec;
  1583. #ifndef __IeXdiX86ExContext_INTERFACE_DEFINED__
  1584. #define __IeXdiX86ExContext_INTERFACE_DEFINED__
  1585. /* interface IeXdiX86ExContext */
  1586. /* [ref][helpstring][uuid][object] */
  1587. EXTERN_C const IID IID_IeXdiX86ExContext;
  1588. #if defined(__cplusplus) && !defined(CINTERFACE)
  1589. MIDL_INTERFACE("353ba159-ff30-4af9-86ae-393809fef440")
  1590. IeXdiX86ExContext : public IUnknown
  1591. {
  1592. public:
  1593. virtual HRESULT STDMETHODCALLTYPE GetContext(
  1594. /* [out][in] */ PCONTEXT_X86_EX pContext) = 0;
  1595. virtual HRESULT STDMETHODCALLTYPE SetContext(
  1596. /* [in] */ CONTEXT_X86_EX Context) = 0;
  1597. };
  1598. #else /* C style interface */
  1599. typedef struct IeXdiX86ExContextVtbl
  1600. {
  1601. BEGIN_INTERFACE
  1602. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1603. IeXdiX86ExContext * This,
  1604. /* [in] */ REFIID riid,
  1605. /* [iid_is][out] */ void **ppvObject);
  1606. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1607. IeXdiX86ExContext * This);
  1608. ULONG ( STDMETHODCALLTYPE *Release )(
  1609. IeXdiX86ExContext * This);
  1610. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  1611. IeXdiX86ExContext * This,
  1612. /* [out][in] */ PCONTEXT_X86_EX pContext);
  1613. HRESULT ( STDMETHODCALLTYPE *SetContext )(
  1614. IeXdiX86ExContext * This,
  1615. /* [in] */ CONTEXT_X86_EX Context);
  1616. END_INTERFACE
  1617. } IeXdiX86ExContextVtbl;
  1618. interface IeXdiX86ExContext
  1619. {
  1620. CONST_VTBL struct IeXdiX86ExContextVtbl *lpVtbl;
  1621. };
  1622. #ifdef COBJMACROS
  1623. #define IeXdiX86ExContext_QueryInterface(This,riid,ppvObject) \
  1624. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1625. #define IeXdiX86ExContext_AddRef(This) \
  1626. (This)->lpVtbl -> AddRef(This)
  1627. #define IeXdiX86ExContext_Release(This) \
  1628. (This)->lpVtbl -> Release(This)
  1629. #define IeXdiX86ExContext_GetContext(This,pContext) \
  1630. (This)->lpVtbl -> GetContext(This,pContext)
  1631. #define IeXdiX86ExContext_SetContext(This,Context) \
  1632. (This)->lpVtbl -> SetContext(This,Context)
  1633. #endif /* COBJMACROS */
  1634. #endif /* C style interface */
  1635. HRESULT STDMETHODCALLTYPE IeXdiX86ExContext_GetContext_Proxy(
  1636. IeXdiX86ExContext * This,
  1637. /* [out][in] */ PCONTEXT_X86_EX pContext);
  1638. void __RPC_STUB IeXdiX86ExContext_GetContext_Stub(
  1639. IRpcStubBuffer *This,
  1640. IRpcChannelBuffer *_pRpcChannelBuffer,
  1641. PRPC_MESSAGE _pRpcMessage,
  1642. DWORD *_pdwStubPhase);
  1643. HRESULT STDMETHODCALLTYPE IeXdiX86ExContext_SetContext_Proxy(
  1644. IeXdiX86ExContext * This,
  1645. /* [in] */ CONTEXT_X86_EX Context);
  1646. void __RPC_STUB IeXdiX86ExContext_SetContext_Stub(
  1647. IRpcStubBuffer *This,
  1648. IRpcChannelBuffer *_pRpcChannelBuffer,
  1649. PRPC_MESSAGE _pRpcMessage,
  1650. DWORD *_pdwStubPhase);
  1651. #endif /* __IeXdiX86ExContext_INTERFACE_DEFINED__ */
  1652. /* interface __MIDL_itf_exdi_0263 */
  1653. /* [local] */
  1654. // The following constants are bit definitions for the ModeFlags value in CONTEXT_X86_64.
  1655. // They are provided to allow debuggers to correctly disassemble instructions based on
  1656. // the current operating mode of the processor.
  1657. #define X86_64_MODE_D (0x0001) // D bit from the current CS selector
  1658. #define X86_64_MODE_L (0x0002) // L bit (long mode) from the current CS selector
  1659. #define X86_64_MODE_LME (0x0004) // LME bit (lomg mode enable) from extended feature MSR
  1660. #define X86_64_MODE_REX (0x0008) // REX bit (register extension) from extended feature MSR
  1661. typedef struct _SEG64_DESC_INFO
  1662. {
  1663. DWORD64 SegBase;
  1664. DWORD64 SegLimit;
  1665. DWORD SegFlags;
  1666. } SEG64_DESC_INFO;
  1667. typedef struct _SSE_REG
  1668. {
  1669. DWORD Reg0;
  1670. DWORD Reg1;
  1671. DWORD Reg2;
  1672. DWORD Reg3;
  1673. } SSE_REG;
  1674. typedef struct _CONTEXT_X86_64
  1675. {
  1676. struct
  1677. {
  1678. BOOL fSegmentRegs;
  1679. BOOL fControlRegs;
  1680. BOOL fIntegerRegs;
  1681. BOOL fFloatingPointRegs;
  1682. BOOL fDebugRegs;
  1683. BOOL fSegmentDescriptors;
  1684. BOOL fSSERegisters;
  1685. BOOL fSystemRegisters;
  1686. } RegGroupSelection;
  1687. DWORD SegCs;
  1688. DWORD SegSs;
  1689. DWORD SegGs;
  1690. DWORD SegFs;
  1691. DWORD SegEs;
  1692. DWORD SegDs;
  1693. DWORD64 ModeFlags;
  1694. DWORD64 EFlags;
  1695. DWORD64 Rbp;
  1696. DWORD64 Rip;
  1697. DWORD64 Rsp;
  1698. DWORD64 Rax;
  1699. DWORD64 Rbx;
  1700. DWORD64 Rcx;
  1701. DWORD64 Rdx;
  1702. DWORD64 Rsi;
  1703. DWORD64 Rdi;
  1704. DWORD64 R8;
  1705. DWORD64 R9;
  1706. DWORD64 R10;
  1707. DWORD64 R11;
  1708. DWORD64 R12;
  1709. DWORD64 R13;
  1710. DWORD64 R14;
  1711. DWORD64 R15;
  1712. DWORD ControlWord;
  1713. DWORD StatusWord;
  1714. DWORD TagWord;
  1715. DWORD ErrorOffset;
  1716. DWORD ErrorSelector;
  1717. DWORD DataOffset;
  1718. DWORD DataSelector;
  1719. BYTE RegisterArea[ 80 ];
  1720. DWORD64 Dr0;
  1721. DWORD64 Dr1;
  1722. DWORD64 Dr2;
  1723. DWORD64 Dr3;
  1724. DWORD64 Dr6;
  1725. DWORD64 Dr7;
  1726. SEG64_DESC_INFO DescriptorCs;
  1727. SEG64_DESC_INFO DescriptorSs;
  1728. SEG64_DESC_INFO DescriptorGs;
  1729. SEG64_DESC_INFO DescriptorFs;
  1730. SEG64_DESC_INFO DescriptorEs;
  1731. SEG64_DESC_INFO DescriptorDs;
  1732. DWORD64 IDTBase;
  1733. DWORD64 IDTLimit;
  1734. DWORD64 GDTBase;
  1735. DWORD64 GDTLimit;
  1736. DWORD SelLDT;
  1737. SEG64_DESC_INFO SegLDT;
  1738. DWORD SelTSS;
  1739. SEG64_DESC_INFO SegTSS;
  1740. DWORD64 RegCr0;
  1741. DWORD64 RegCr2;
  1742. DWORD64 RegCr3;
  1743. DWORD64 RegCr4;
  1744. DWORD64 RegCr8;
  1745. DWORD RegMXCSR;
  1746. SSE_REG RegSSE[ 16 ];
  1747. } CONTEXT_X86_64;
  1748. typedef struct _CONTEXT_X86_64 *PCONTEXT_X86_64;
  1749. extern RPC_IF_HANDLE __MIDL_itf_exdi_0263_v0_0_c_ifspec;
  1750. extern RPC_IF_HANDLE __MIDL_itf_exdi_0263_v0_0_s_ifspec;
  1751. #ifndef __IeXdiX86_64Context_INTERFACE_DEFINED__
  1752. #define __IeXdiX86_64Context_INTERFACE_DEFINED__
  1753. /* interface IeXdiX86_64Context */
  1754. /* [ref][helpstring][uuid][object] */
  1755. EXTERN_C const IID IID_IeXdiX86_64Context;
  1756. #if defined(__cplusplus) && !defined(CINTERFACE)
  1757. MIDL_INTERFACE("4795B125-6CDE-4e76-B8D3-D5ED69ECE739")
  1758. IeXdiX86_64Context : public IUnknown
  1759. {
  1760. public:
  1761. virtual HRESULT STDMETHODCALLTYPE GetContext(
  1762. /* [out][in] */ PCONTEXT_X86_64 pContext) = 0;
  1763. virtual HRESULT STDMETHODCALLTYPE SetContext(
  1764. /* [in] */ CONTEXT_X86_64 Context) = 0;
  1765. };
  1766. #else /* C style interface */
  1767. typedef struct IeXdiX86_64ContextVtbl
  1768. {
  1769. BEGIN_INTERFACE
  1770. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1771. IeXdiX86_64Context * This,
  1772. /* [in] */ REFIID riid,
  1773. /* [iid_is][out] */ void **ppvObject);
  1774. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1775. IeXdiX86_64Context * This);
  1776. ULONG ( STDMETHODCALLTYPE *Release )(
  1777. IeXdiX86_64Context * This);
  1778. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  1779. IeXdiX86_64Context * This,
  1780. /* [out][in] */ PCONTEXT_X86_64 pContext);
  1781. HRESULT ( STDMETHODCALLTYPE *SetContext )(
  1782. IeXdiX86_64Context * This,
  1783. /* [in] */ CONTEXT_X86_64 Context);
  1784. END_INTERFACE
  1785. } IeXdiX86_64ContextVtbl;
  1786. interface IeXdiX86_64Context
  1787. {
  1788. CONST_VTBL struct IeXdiX86_64ContextVtbl *lpVtbl;
  1789. };
  1790. #ifdef COBJMACROS
  1791. #define IeXdiX86_64Context_QueryInterface(This,riid,ppvObject) \
  1792. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1793. #define IeXdiX86_64Context_AddRef(This) \
  1794. (This)->lpVtbl -> AddRef(This)
  1795. #define IeXdiX86_64Context_Release(This) \
  1796. (This)->lpVtbl -> Release(This)
  1797. #define IeXdiX86_64Context_GetContext(This,pContext) \
  1798. (This)->lpVtbl -> GetContext(This,pContext)
  1799. #define IeXdiX86_64Context_SetContext(This,Context) \
  1800. (This)->lpVtbl -> SetContext(This,Context)
  1801. #endif /* COBJMACROS */
  1802. #endif /* C style interface */
  1803. HRESULT STDMETHODCALLTYPE IeXdiX86_64Context_GetContext_Proxy(
  1804. IeXdiX86_64Context * This,
  1805. /* [out][in] */ PCONTEXT_X86_64 pContext);
  1806. void __RPC_STUB IeXdiX86_64Context_GetContext_Stub(
  1807. IRpcStubBuffer *This,
  1808. IRpcChannelBuffer *_pRpcChannelBuffer,
  1809. PRPC_MESSAGE _pRpcMessage,
  1810. DWORD *_pdwStubPhase);
  1811. HRESULT STDMETHODCALLTYPE IeXdiX86_64Context_SetContext_Proxy(
  1812. IeXdiX86_64Context * This,
  1813. /* [in] */ CONTEXT_X86_64 Context);
  1814. void __RPC_STUB IeXdiX86_64Context_SetContext_Stub(
  1815. IRpcStubBuffer *This,
  1816. IRpcChannelBuffer *_pRpcChannelBuffer,
  1817. PRPC_MESSAGE _pRpcMessage,
  1818. DWORD *_pdwStubPhase);
  1819. #endif /* __IeXdiX86_64Context_INTERFACE_DEFINED__ */
  1820. /* interface __MIDL_itf_exdi_0264 */
  1821. /* [local] */
  1822. typedef struct _CONTEXT_SHX
  1823. {
  1824. struct
  1825. {
  1826. BOOL fControlRegs;
  1827. BOOL fIntegerRegs;
  1828. BOOL fFloatingPointRegs;
  1829. BOOL fDebugRegs;
  1830. } RegGroupSelection;
  1831. DWORD Pr;
  1832. DWORD Mach;
  1833. DWORD Macl;
  1834. DWORD Gbr;
  1835. DWORD Pc;
  1836. DWORD Sr;
  1837. DWORD R0;
  1838. DWORD R1;
  1839. DWORD R2;
  1840. DWORD R3;
  1841. DWORD R4;
  1842. DWORD R5;
  1843. DWORD R6;
  1844. DWORD R7;
  1845. DWORD R8;
  1846. DWORD R9;
  1847. DWORD R10;
  1848. DWORD R11;
  1849. DWORD R12;
  1850. DWORD R13;
  1851. DWORD R14;
  1852. DWORD R15;
  1853. DWORD Fpscr;
  1854. DWORD Fpul;
  1855. DWORD FR_B0[ 16 ];
  1856. DWORD FR_B1[ 16 ];
  1857. DWORD BarA;
  1858. BYTE BasrA;
  1859. BYTE BamrA;
  1860. WORD BbrA;
  1861. DWORD BarB;
  1862. BYTE BasrB;
  1863. BYTE BamrB;
  1864. WORD BbrB;
  1865. DWORD BdrB;
  1866. DWORD BdmrB;
  1867. WORD Brcr;
  1868. WORD Align;
  1869. } CONTEXT_SHX;
  1870. typedef struct _CONTEXT_SHX *PCONTEXT_SHX;
  1871. extern RPC_IF_HANDLE __MIDL_itf_exdi_0264_v0_0_c_ifspec;
  1872. extern RPC_IF_HANDLE __MIDL_itf_exdi_0264_v0_0_s_ifspec;
  1873. #ifndef __IeXdiSHXContext_INTERFACE_DEFINED__
  1874. #define __IeXdiSHXContext_INTERFACE_DEFINED__
  1875. /* interface IeXdiSHXContext */
  1876. /* [ref][helpstring][uuid][object] */
  1877. EXTERN_C const IID IID_IeXdiSHXContext;
  1878. #if defined(__cplusplus) && !defined(CINTERFACE)
  1879. MIDL_INTERFACE("47486F67-6461-6C65-5844-495353475843")
  1880. IeXdiSHXContext : public IUnknown
  1881. {
  1882. public:
  1883. virtual HRESULT STDMETHODCALLTYPE GetContext(
  1884. /* [out][in] */ PCONTEXT_SHX pContext) = 0;
  1885. virtual HRESULT STDMETHODCALLTYPE SetContext(
  1886. /* [in] */ CONTEXT_SHX Context) = 0;
  1887. };
  1888. #else /* C style interface */
  1889. typedef struct IeXdiSHXContextVtbl
  1890. {
  1891. BEGIN_INTERFACE
  1892. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  1893. IeXdiSHXContext * This,
  1894. /* [in] */ REFIID riid,
  1895. /* [iid_is][out] */ void **ppvObject);
  1896. ULONG ( STDMETHODCALLTYPE *AddRef )(
  1897. IeXdiSHXContext * This);
  1898. ULONG ( STDMETHODCALLTYPE *Release )(
  1899. IeXdiSHXContext * This);
  1900. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  1901. IeXdiSHXContext * This,
  1902. /* [out][in] */ PCONTEXT_SHX pContext);
  1903. HRESULT ( STDMETHODCALLTYPE *SetContext )(
  1904. IeXdiSHXContext * This,
  1905. /* [in] */ CONTEXT_SHX Context);
  1906. END_INTERFACE
  1907. } IeXdiSHXContextVtbl;
  1908. interface IeXdiSHXContext
  1909. {
  1910. CONST_VTBL struct IeXdiSHXContextVtbl *lpVtbl;
  1911. };
  1912. #ifdef COBJMACROS
  1913. #define IeXdiSHXContext_QueryInterface(This,riid,ppvObject) \
  1914. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1915. #define IeXdiSHXContext_AddRef(This) \
  1916. (This)->lpVtbl -> AddRef(This)
  1917. #define IeXdiSHXContext_Release(This) \
  1918. (This)->lpVtbl -> Release(This)
  1919. #define IeXdiSHXContext_GetContext(This,pContext) \
  1920. (This)->lpVtbl -> GetContext(This,pContext)
  1921. #define IeXdiSHXContext_SetContext(This,Context) \
  1922. (This)->lpVtbl -> SetContext(This,Context)
  1923. #endif /* COBJMACROS */
  1924. #endif /* C style interface */
  1925. HRESULT STDMETHODCALLTYPE IeXdiSHXContext_GetContext_Proxy(
  1926. IeXdiSHXContext * This,
  1927. /* [out][in] */ PCONTEXT_SHX pContext);
  1928. void __RPC_STUB IeXdiSHXContext_GetContext_Stub(
  1929. IRpcStubBuffer *This,
  1930. IRpcChannelBuffer *_pRpcChannelBuffer,
  1931. PRPC_MESSAGE _pRpcMessage,
  1932. DWORD *_pdwStubPhase);
  1933. HRESULT STDMETHODCALLTYPE IeXdiSHXContext_SetContext_Proxy(
  1934. IeXdiSHXContext * This,
  1935. /* [in] */ CONTEXT_SHX Context);
  1936. void __RPC_STUB IeXdiSHXContext_SetContext_Stub(
  1937. IRpcStubBuffer *This,
  1938. IRpcChannelBuffer *_pRpcChannelBuffer,
  1939. PRPC_MESSAGE _pRpcMessage,
  1940. DWORD *_pdwStubPhase);
  1941. #endif /* __IeXdiSHXContext_INTERFACE_DEFINED__ */
  1942. /* interface __MIDL_itf_exdi_0265 */
  1943. /* [local] */
  1944. typedef struct _CONTEXT_MIPS
  1945. {
  1946. struct
  1947. {
  1948. BOOL fMode64bits;
  1949. BOOL fControlRegs;
  1950. BOOL fIntegerRegs;
  1951. BOOL fFloatingPointRegs;
  1952. BOOL fExceptRegs;
  1953. BOOL fMemoryMgmRegs;
  1954. } RegGroupSelection;
  1955. DWORD IntAt;
  1956. DWORD Hi32_IntAt;
  1957. DWORD IntV0;
  1958. DWORD Hi32_IntV0;
  1959. DWORD IntV1;
  1960. DWORD Hi32_IntV1;
  1961. DWORD IntA0;
  1962. DWORD Hi32_IntA0;
  1963. DWORD IntA1;
  1964. DWORD Hi32_IntA1;
  1965. DWORD IntA2;
  1966. DWORD Hi32_IntA2;
  1967. DWORD IntA3;
  1968. DWORD Hi32_IntA3;
  1969. DWORD IntT0;
  1970. DWORD Hi32_IntT0;
  1971. DWORD IntT1;
  1972. DWORD Hi32_IntT1;
  1973. DWORD IntT2;
  1974. DWORD Hi32_IntT2;
  1975. DWORD IntT3;
  1976. DWORD Hi32_IntT3;
  1977. DWORD IntT4;
  1978. DWORD Hi32_IntT4;
  1979. DWORD IntT5;
  1980. DWORD Hi32_IntT5;
  1981. DWORD IntT6;
  1982. DWORD Hi32_IntT6;
  1983. DWORD IntT7;
  1984. DWORD Hi32_IntT7;
  1985. DWORD IntS0;
  1986. DWORD Hi32_IntS0;
  1987. DWORD IntS1;
  1988. DWORD Hi32_IntS1;
  1989. DWORD IntS2;
  1990. DWORD Hi32_IntS2;
  1991. DWORD IntS3;
  1992. DWORD Hi32_IntS3;
  1993. DWORD IntS4;
  1994. DWORD Hi32_IntS4;
  1995. DWORD IntS5;
  1996. DWORD Hi32_IntS5;
  1997. DWORD IntS6;
  1998. DWORD Hi32_IntS6;
  1999. DWORD IntS7;
  2000. DWORD Hi32_IntS7;
  2001. DWORD IntT8;
  2002. DWORD Hi32_IntT8;
  2003. DWORD IntT9;
  2004. DWORD Hi32_IntT9;
  2005. DWORD IntK0;
  2006. DWORD Hi32_IntK0;
  2007. DWORD IntK1;
  2008. DWORD Hi32_IntK1;
  2009. DWORD IntGp;
  2010. DWORD Hi32_IntGp;
  2011. DWORD IntSp;
  2012. DWORD Hi32_IntSp;
  2013. DWORD IntS8;
  2014. DWORD Hi32_IntS8;
  2015. DWORD IntRa;
  2016. DWORD Hi32_IntRa;
  2017. DWORD IntLo;
  2018. DWORD Hi32_IntLo;
  2019. DWORD IntHi;
  2020. DWORD Hi32_IntHi;
  2021. DWORD FltF0;
  2022. DWORD Hi32_FltF0;
  2023. DWORD FltF1;
  2024. DWORD Hi32_FltF1;
  2025. DWORD FltF2;
  2026. DWORD Hi32_FltF2;
  2027. DWORD FltF3;
  2028. DWORD Hi32_FltF3;
  2029. DWORD FltF4;
  2030. DWORD Hi32_FltF4;
  2031. DWORD FltF5;
  2032. DWORD Hi32_FltF5;
  2033. DWORD FltF6;
  2034. DWORD Hi32_FltF6;
  2035. DWORD FltF7;
  2036. DWORD Hi32_FltF7;
  2037. DWORD FltF8;
  2038. DWORD Hi32_FltF8;
  2039. DWORD FltF9;
  2040. DWORD Hi32_FltF9;
  2041. DWORD FltF10;
  2042. DWORD Hi32_FltF10;
  2043. DWORD FltF11;
  2044. DWORD Hi32_FltF11;
  2045. DWORD FltF12;
  2046. DWORD Hi32_FltF12;
  2047. DWORD FltF13;
  2048. DWORD Hi32_FltF13;
  2049. DWORD FltF14;
  2050. DWORD Hi32_FltF14;
  2051. DWORD FltF15;
  2052. DWORD Hi32_FltF15;
  2053. DWORD FltF16;
  2054. DWORD Hi32_FltF16;
  2055. DWORD FltF17;
  2056. DWORD Hi32_FltF17;
  2057. DWORD FltF18;
  2058. DWORD Hi32_FltF18;
  2059. DWORD FltF19;
  2060. DWORD Hi32_FltF19;
  2061. DWORD FltF20;
  2062. DWORD Hi32_FltF20;
  2063. DWORD FltF21;
  2064. DWORD Hi32_FltF21;
  2065. DWORD FltF22;
  2066. DWORD Hi32_FltF22;
  2067. DWORD FltF23;
  2068. DWORD Hi32_FltF23;
  2069. DWORD FltF24;
  2070. DWORD Hi32_FltF24;
  2071. DWORD FltF25;
  2072. DWORD Hi32_FltF25;
  2073. DWORD FltF26;
  2074. DWORD Hi32_FltF26;
  2075. DWORD FltF27;
  2076. DWORD Hi32_FltF27;
  2077. DWORD FltF28;
  2078. DWORD Hi32_FltF28;
  2079. DWORD FltF29;
  2080. DWORD Hi32_FltF29;
  2081. DWORD FltF30;
  2082. DWORD Hi32_FltF30;
  2083. DWORD FltF31;
  2084. DWORD Hi32_FltF31;
  2085. DWORD FCR0;
  2086. DWORD FCR31;
  2087. DWORD Pc;
  2088. DWORD Hi32_Pc;
  2089. DWORD Context;
  2090. DWORD Hi32_Context;
  2091. DWORD BadVAddr;
  2092. DWORD Hi32_BadVAddr;
  2093. DWORD EPC;
  2094. DWORD Hi32_EPC;
  2095. DWORD XContextReg;
  2096. DWORD Hi32_XContextReg;
  2097. DWORD ErrorEPC;
  2098. DWORD Hi32_ErrorEPC;
  2099. DWORD Count;
  2100. DWORD Compare;
  2101. DWORD Sr;
  2102. DWORD Cause;
  2103. DWORD WatchLo;
  2104. DWORD WatchHi;
  2105. DWORD ECC;
  2106. DWORD CacheErr;
  2107. DWORD Index;
  2108. DWORD Random;
  2109. DWORD EntryLo0;
  2110. DWORD Hi32_EntryLo0;
  2111. DWORD EntryLo1;
  2112. DWORD Hi32_EntryLo1;
  2113. DWORD PageMask;
  2114. DWORD Wired;
  2115. DWORD EntryHi;
  2116. DWORD Hi32_EntryHi;
  2117. DWORD PRId;
  2118. DWORD Config;
  2119. DWORD LLAddr;
  2120. DWORD TagLo;
  2121. DWORD TagHi;
  2122. } CONTEXT_MIPS;
  2123. typedef struct _CONTEXT_MIPS *PCONTEXT_MIPS;
  2124. extern RPC_IF_HANDLE __MIDL_itf_exdi_0265_v0_0_c_ifspec;
  2125. extern RPC_IF_HANDLE __MIDL_itf_exdi_0265_v0_0_s_ifspec;
  2126. #ifndef __IeXdiMIPSContext_INTERFACE_DEFINED__
  2127. #define __IeXdiMIPSContext_INTERFACE_DEFINED__
  2128. /* interface IeXdiMIPSContext */
  2129. /* [ref][helpstring][uuid][object] */
  2130. EXTERN_C const IID IID_IeXdiMIPSContext;
  2131. #if defined(__cplusplus) && !defined(CINTERFACE)
  2132. MIDL_INTERFACE("47486F67-6461-6C65-5844-49534D495043")
  2133. IeXdiMIPSContext : public IUnknown
  2134. {
  2135. public:
  2136. virtual HRESULT STDMETHODCALLTYPE GetContext(
  2137. /* [out][in] */ PCONTEXT_MIPS pContext) = 0;
  2138. virtual HRESULT STDMETHODCALLTYPE SetContext(
  2139. /* [in] */ CONTEXT_MIPS Context) = 0;
  2140. };
  2141. #else /* C style interface */
  2142. typedef struct IeXdiMIPSContextVtbl
  2143. {
  2144. BEGIN_INTERFACE
  2145. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2146. IeXdiMIPSContext * This,
  2147. /* [in] */ REFIID riid,
  2148. /* [iid_is][out] */ void **ppvObject);
  2149. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2150. IeXdiMIPSContext * This);
  2151. ULONG ( STDMETHODCALLTYPE *Release )(
  2152. IeXdiMIPSContext * This);
  2153. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  2154. IeXdiMIPSContext * This,
  2155. /* [out][in] */ PCONTEXT_MIPS pContext);
  2156. HRESULT ( STDMETHODCALLTYPE *SetContext )(
  2157. IeXdiMIPSContext * This,
  2158. /* [in] */ CONTEXT_MIPS Context);
  2159. END_INTERFACE
  2160. } IeXdiMIPSContextVtbl;
  2161. interface IeXdiMIPSContext
  2162. {
  2163. CONST_VTBL struct IeXdiMIPSContextVtbl *lpVtbl;
  2164. };
  2165. #ifdef COBJMACROS
  2166. #define IeXdiMIPSContext_QueryInterface(This,riid,ppvObject) \
  2167. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2168. #define IeXdiMIPSContext_AddRef(This) \
  2169. (This)->lpVtbl -> AddRef(This)
  2170. #define IeXdiMIPSContext_Release(This) \
  2171. (This)->lpVtbl -> Release(This)
  2172. #define IeXdiMIPSContext_GetContext(This,pContext) \
  2173. (This)->lpVtbl -> GetContext(This,pContext)
  2174. #define IeXdiMIPSContext_SetContext(This,Context) \
  2175. (This)->lpVtbl -> SetContext(This,Context)
  2176. #endif /* COBJMACROS */
  2177. #endif /* C style interface */
  2178. HRESULT STDMETHODCALLTYPE IeXdiMIPSContext_GetContext_Proxy(
  2179. IeXdiMIPSContext * This,
  2180. /* [out][in] */ PCONTEXT_MIPS pContext);
  2181. void __RPC_STUB IeXdiMIPSContext_GetContext_Stub(
  2182. IRpcStubBuffer *This,
  2183. IRpcChannelBuffer *_pRpcChannelBuffer,
  2184. PRPC_MESSAGE _pRpcMessage,
  2185. DWORD *_pdwStubPhase);
  2186. HRESULT STDMETHODCALLTYPE IeXdiMIPSContext_SetContext_Proxy(
  2187. IeXdiMIPSContext * This,
  2188. /* [in] */ CONTEXT_MIPS Context);
  2189. void __RPC_STUB IeXdiMIPSContext_SetContext_Stub(
  2190. IRpcStubBuffer *This,
  2191. IRpcChannelBuffer *_pRpcChannelBuffer,
  2192. PRPC_MESSAGE _pRpcMessage,
  2193. DWORD *_pdwStubPhase);
  2194. #endif /* __IeXdiMIPSContext_INTERFACE_DEFINED__ */
  2195. /* interface __MIDL_itf_exdi_0266 */
  2196. /* [local] */
  2197. typedef struct _CONTEXT_ARM
  2198. {
  2199. struct
  2200. {
  2201. BOOL fControlRegs;
  2202. BOOL fIntegerRegs;
  2203. BOOL fDebugRegs;
  2204. } RegGroupSelection;
  2205. DWORD Sp;
  2206. DWORD Lr;
  2207. DWORD Pc;
  2208. DWORD Psr;
  2209. DWORD R0;
  2210. DWORD R1;
  2211. DWORD R2;
  2212. DWORD R3;
  2213. DWORD R4;
  2214. DWORD R5;
  2215. DWORD R6;
  2216. DWORD R7;
  2217. DWORD R8;
  2218. DWORD R9;
  2219. DWORD R10;
  2220. DWORD R11;
  2221. DWORD R12;
  2222. } CONTEXT_ARM;
  2223. typedef struct _CONTEXT_ARM *PCONTEXT_ARM;
  2224. extern RPC_IF_HANDLE __MIDL_itf_exdi_0266_v0_0_c_ifspec;
  2225. extern RPC_IF_HANDLE __MIDL_itf_exdi_0266_v0_0_s_ifspec;
  2226. #ifndef __IeXdiARMContext_INTERFACE_DEFINED__
  2227. #define __IeXdiARMContext_INTERFACE_DEFINED__
  2228. /* interface IeXdiARMContext */
  2229. /* [ref][helpstring][uuid][object] */
  2230. EXTERN_C const IID IID_IeXdiARMContext;
  2231. #if defined(__cplusplus) && !defined(CINTERFACE)
  2232. MIDL_INTERFACE("47486F67-6461-6C65-5844-495341524D43")
  2233. IeXdiARMContext : public IUnknown
  2234. {
  2235. public:
  2236. virtual HRESULT STDMETHODCALLTYPE GetContext(
  2237. /* [out][in] */ PCONTEXT_ARM pContext) = 0;
  2238. virtual HRESULT STDMETHODCALLTYPE SetContext(
  2239. /* [in] */ CONTEXT_ARM Context) = 0;
  2240. };
  2241. #else /* C style interface */
  2242. typedef struct IeXdiARMContextVtbl
  2243. {
  2244. BEGIN_INTERFACE
  2245. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2246. IeXdiARMContext * This,
  2247. /* [in] */ REFIID riid,
  2248. /* [iid_is][out] */ void **ppvObject);
  2249. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2250. IeXdiARMContext * This);
  2251. ULONG ( STDMETHODCALLTYPE *Release )(
  2252. IeXdiARMContext * This);
  2253. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  2254. IeXdiARMContext * This,
  2255. /* [out][in] */ PCONTEXT_ARM pContext);
  2256. HRESULT ( STDMETHODCALLTYPE *SetContext )(
  2257. IeXdiARMContext * This,
  2258. /* [in] */ CONTEXT_ARM Context);
  2259. END_INTERFACE
  2260. } IeXdiARMContextVtbl;
  2261. interface IeXdiARMContext
  2262. {
  2263. CONST_VTBL struct IeXdiARMContextVtbl *lpVtbl;
  2264. };
  2265. #ifdef COBJMACROS
  2266. #define IeXdiARMContext_QueryInterface(This,riid,ppvObject) \
  2267. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2268. #define IeXdiARMContext_AddRef(This) \
  2269. (This)->lpVtbl -> AddRef(This)
  2270. #define IeXdiARMContext_Release(This) \
  2271. (This)->lpVtbl -> Release(This)
  2272. #define IeXdiARMContext_GetContext(This,pContext) \
  2273. (This)->lpVtbl -> GetContext(This,pContext)
  2274. #define IeXdiARMContext_SetContext(This,Context) \
  2275. (This)->lpVtbl -> SetContext(This,Context)
  2276. #endif /* COBJMACROS */
  2277. #endif /* C style interface */
  2278. HRESULT STDMETHODCALLTYPE IeXdiARMContext_GetContext_Proxy(
  2279. IeXdiARMContext * This,
  2280. /* [out][in] */ PCONTEXT_ARM pContext);
  2281. void __RPC_STUB IeXdiARMContext_GetContext_Stub(
  2282. IRpcStubBuffer *This,
  2283. IRpcChannelBuffer *_pRpcChannelBuffer,
  2284. PRPC_MESSAGE _pRpcMessage,
  2285. DWORD *_pdwStubPhase);
  2286. HRESULT STDMETHODCALLTYPE IeXdiARMContext_SetContext_Proxy(
  2287. IeXdiARMContext * This,
  2288. /* [in] */ CONTEXT_ARM Context);
  2289. void __RPC_STUB IeXdiARMContext_SetContext_Stub(
  2290. IRpcStubBuffer *This,
  2291. IRpcChannelBuffer *_pRpcChannelBuffer,
  2292. PRPC_MESSAGE _pRpcMessage,
  2293. DWORD *_pdwStubPhase);
  2294. #endif /* __IeXdiARMContext_INTERFACE_DEFINED__ */
  2295. /* interface __MIDL_itf_exdi_0267 */
  2296. /* [local] */
  2297. typedef struct _CONTEXT_PPC
  2298. {
  2299. struct
  2300. {
  2301. BOOL fControlRegs;
  2302. BOOL fIntegerRegs;
  2303. BOOL fFloatingPointRegs;
  2304. BOOL fDebugRegs;
  2305. } RegGroupSelection;
  2306. double Fpr0;
  2307. double Fpr1;
  2308. double Fpr2;
  2309. double Fpr3;
  2310. double Fpr4;
  2311. double Fpr5;
  2312. double Fpr6;
  2313. double Fpr7;
  2314. double Fpr8;
  2315. double Fpr9;
  2316. double Fpr10;
  2317. double Fpr11;
  2318. double Fpr12;
  2319. double Fpr13;
  2320. double Fpr14;
  2321. double Fpr15;
  2322. double Fpr16;
  2323. double Fpr17;
  2324. double Fpr18;
  2325. double Fpr19;
  2326. double Fpr20;
  2327. double Fpr21;
  2328. double Fpr22;
  2329. double Fpr23;
  2330. double Fpr24;
  2331. double Fpr25;
  2332. double Fpr26;
  2333. double Fpr27;
  2334. double Fpr28;
  2335. double Fpr29;
  2336. double Fpr30;
  2337. double Fpr31;
  2338. double Fpscr;
  2339. DWORD Gpr0;
  2340. DWORD Gpr1;
  2341. DWORD Gpr2;
  2342. DWORD Gpr3;
  2343. DWORD Gpr4;
  2344. DWORD Gpr5;
  2345. DWORD Gpr6;
  2346. DWORD Gpr7;
  2347. DWORD Gpr8;
  2348. DWORD Gpr9;
  2349. DWORD Gpr10;
  2350. DWORD Gpr11;
  2351. DWORD Gpr12;
  2352. DWORD Gpr13;
  2353. DWORD Gpr14;
  2354. DWORD Gpr15;
  2355. DWORD Gpr16;
  2356. DWORD Gpr17;
  2357. DWORD Gpr18;
  2358. DWORD Gpr19;
  2359. DWORD Gpr20;
  2360. DWORD Gpr21;
  2361. DWORD Gpr22;
  2362. DWORD Gpr23;
  2363. DWORD Gpr24;
  2364. DWORD Gpr25;
  2365. DWORD Gpr26;
  2366. DWORD Gpr27;
  2367. DWORD Gpr28;
  2368. DWORD Gpr29;
  2369. DWORD Gpr30;
  2370. DWORD Gpr31;
  2371. DWORD Msr;
  2372. DWORD Iar;
  2373. DWORD Lr;
  2374. DWORD Ctr;
  2375. DWORD Cr;
  2376. DWORD Xer;
  2377. DWORD Dr0;
  2378. DWORD Dr1;
  2379. DWORD Dr2;
  2380. DWORD Dr3;
  2381. DWORD Dr4;
  2382. DWORD Dr5;
  2383. DWORD Dr6;
  2384. DWORD Dr7;
  2385. } CONTEXT_PPC;
  2386. typedef struct _CONTEXT_PPC *PCONTEXT_PPC;
  2387. extern RPC_IF_HANDLE __MIDL_itf_exdi_0267_v0_0_c_ifspec;
  2388. extern RPC_IF_HANDLE __MIDL_itf_exdi_0267_v0_0_s_ifspec;
  2389. #ifndef __IeXdiPPCContext_INTERFACE_DEFINED__
  2390. #define __IeXdiPPCContext_INTERFACE_DEFINED__
  2391. /* interface IeXdiPPCContext */
  2392. /* [ref][helpstring][uuid][object] */
  2393. EXTERN_C const IID IID_IeXdiPPCContext;
  2394. #if defined(__cplusplus) && !defined(CINTERFACE)
  2395. MIDL_INTERFACE("47486F67-6461-6C65-5844-495350504343")
  2396. IeXdiPPCContext : public IUnknown
  2397. {
  2398. public:
  2399. virtual HRESULT STDMETHODCALLTYPE GetContext(
  2400. /* [out][in] */ PCONTEXT_PPC pContext) = 0;
  2401. virtual HRESULT STDMETHODCALLTYPE SetContext(
  2402. /* [in] */ CONTEXT_PPC Context) = 0;
  2403. };
  2404. #else /* C style interface */
  2405. typedef struct IeXdiPPCContextVtbl
  2406. {
  2407. BEGIN_INTERFACE
  2408. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2409. IeXdiPPCContext * This,
  2410. /* [in] */ REFIID riid,
  2411. /* [iid_is][out] */ void **ppvObject);
  2412. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2413. IeXdiPPCContext * This);
  2414. ULONG ( STDMETHODCALLTYPE *Release )(
  2415. IeXdiPPCContext * This);
  2416. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  2417. IeXdiPPCContext * This,
  2418. /* [out][in] */ PCONTEXT_PPC pContext);
  2419. HRESULT ( STDMETHODCALLTYPE *SetContext )(
  2420. IeXdiPPCContext * This,
  2421. /* [in] */ CONTEXT_PPC Context);
  2422. END_INTERFACE
  2423. } IeXdiPPCContextVtbl;
  2424. interface IeXdiPPCContext
  2425. {
  2426. CONST_VTBL struct IeXdiPPCContextVtbl *lpVtbl;
  2427. };
  2428. #ifdef COBJMACROS
  2429. #define IeXdiPPCContext_QueryInterface(This,riid,ppvObject) \
  2430. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2431. #define IeXdiPPCContext_AddRef(This) \
  2432. (This)->lpVtbl -> AddRef(This)
  2433. #define IeXdiPPCContext_Release(This) \
  2434. (This)->lpVtbl -> Release(This)
  2435. #define IeXdiPPCContext_GetContext(This,pContext) \
  2436. (This)->lpVtbl -> GetContext(This,pContext)
  2437. #define IeXdiPPCContext_SetContext(This,Context) \
  2438. (This)->lpVtbl -> SetContext(This,Context)
  2439. #endif /* COBJMACROS */
  2440. #endif /* C style interface */
  2441. HRESULT STDMETHODCALLTYPE IeXdiPPCContext_GetContext_Proxy(
  2442. IeXdiPPCContext * This,
  2443. /* [out][in] */ PCONTEXT_PPC pContext);
  2444. void __RPC_STUB IeXdiPPCContext_GetContext_Stub(
  2445. IRpcStubBuffer *This,
  2446. IRpcChannelBuffer *_pRpcChannelBuffer,
  2447. PRPC_MESSAGE _pRpcMessage,
  2448. DWORD *_pdwStubPhase);
  2449. HRESULT STDMETHODCALLTYPE IeXdiPPCContext_SetContext_Proxy(
  2450. IeXdiPPCContext * This,
  2451. /* [in] */ CONTEXT_PPC Context);
  2452. void __RPC_STUB IeXdiPPCContext_SetContext_Stub(
  2453. IRpcStubBuffer *This,
  2454. IRpcChannelBuffer *_pRpcChannelBuffer,
  2455. PRPC_MESSAGE _pRpcMessage,
  2456. DWORD *_pdwStubPhase);
  2457. #endif /* __IeXdiPPCContext_INTERFACE_DEFINED__ */
  2458. /* interface __MIDL_itf_exdi_0268 */
  2459. /* [local] */
  2460. typedef struct _IA64_FLOAT128
  2461. {
  2462. DWORD64 Low;
  2463. DWORD64 High;
  2464. } IA64_FLOAT128;
  2465. typedef struct _EXDI_CONTEXT_IA64
  2466. {
  2467. struct
  2468. {
  2469. BOOL fIntegerRegs;
  2470. BOOL fBranchRegs;
  2471. BOOL fLowFloatRegs;
  2472. BOOL fHighFloatRegs;
  2473. BOOL fDebugRegs;
  2474. BOOL fControlRegs;
  2475. BOOL fSystemRegs;
  2476. } RegGroupSelection;
  2477. DWORD64 IntR1;
  2478. DWORD64 IntR2;
  2479. DWORD64 IntR3;
  2480. DWORD64 IntR4;
  2481. DWORD64 IntR5;
  2482. DWORD64 IntR6;
  2483. DWORD64 IntR7;
  2484. DWORD64 IntR8;
  2485. DWORD64 IntR9;
  2486. DWORD64 IntR10;
  2487. DWORD64 IntR11;
  2488. DWORD64 IntR12;
  2489. DWORD64 IntR13;
  2490. DWORD64 IntR14;
  2491. DWORD64 IntR15;
  2492. DWORD64 IntR16;
  2493. DWORD64 IntR17;
  2494. DWORD64 IntR18;
  2495. DWORD64 IntR19;
  2496. DWORD64 IntR20;
  2497. DWORD64 IntR21;
  2498. DWORD64 IntR22;
  2499. DWORD64 IntR23;
  2500. DWORD64 IntR24;
  2501. DWORD64 IntR25;
  2502. DWORD64 IntR26;
  2503. DWORD64 IntR27;
  2504. DWORD64 IntR28;
  2505. DWORD64 IntR29;
  2506. DWORD64 IntR30;
  2507. DWORD64 IntR31;
  2508. DWORD64 IntNats;
  2509. DWORD64 Preds;
  2510. DWORD64 Br0;
  2511. DWORD64 Br1;
  2512. DWORD64 Br2;
  2513. DWORD64 Br3;
  2514. DWORD64 Br4;
  2515. DWORD64 Br5;
  2516. DWORD64 Br6;
  2517. DWORD64 Br7;
  2518. DWORD64 StFPSR;
  2519. IA64_FLOAT128 FltF2;
  2520. IA64_FLOAT128 FltF3;
  2521. IA64_FLOAT128 FltF4;
  2522. IA64_FLOAT128 FltF5;
  2523. IA64_FLOAT128 FltF6;
  2524. IA64_FLOAT128 FltF7;
  2525. IA64_FLOAT128 FltF8;
  2526. IA64_FLOAT128 FltF9;
  2527. IA64_FLOAT128 FltF10;
  2528. IA64_FLOAT128 FltF11;
  2529. IA64_FLOAT128 FltF12;
  2530. IA64_FLOAT128 FltF13;
  2531. IA64_FLOAT128 FltF14;
  2532. IA64_FLOAT128 FltF15;
  2533. IA64_FLOAT128 FltF16;
  2534. IA64_FLOAT128 FltF17;
  2535. IA64_FLOAT128 FltF18;
  2536. IA64_FLOAT128 FltF19;
  2537. IA64_FLOAT128 FltF20;
  2538. IA64_FLOAT128 FltF21;
  2539. IA64_FLOAT128 FltF22;
  2540. IA64_FLOAT128 FltF23;
  2541. IA64_FLOAT128 FltF24;
  2542. IA64_FLOAT128 FltF25;
  2543. IA64_FLOAT128 FltF26;
  2544. IA64_FLOAT128 FltF27;
  2545. IA64_FLOAT128 FltF28;
  2546. IA64_FLOAT128 FltF29;
  2547. IA64_FLOAT128 FltF30;
  2548. IA64_FLOAT128 FltF31;
  2549. IA64_FLOAT128 FltF32;
  2550. IA64_FLOAT128 FltF33;
  2551. IA64_FLOAT128 FltF34;
  2552. IA64_FLOAT128 FltF35;
  2553. IA64_FLOAT128 FltF36;
  2554. IA64_FLOAT128 FltF37;
  2555. IA64_FLOAT128 FltF38;
  2556. IA64_FLOAT128 FltF39;
  2557. IA64_FLOAT128 FltF40;
  2558. IA64_FLOAT128 FltF41;
  2559. IA64_FLOAT128 FltF42;
  2560. IA64_FLOAT128 FltF43;
  2561. IA64_FLOAT128 FltF44;
  2562. IA64_FLOAT128 FltF45;
  2563. IA64_FLOAT128 FltF46;
  2564. IA64_FLOAT128 FltF47;
  2565. IA64_FLOAT128 FltF48;
  2566. IA64_FLOAT128 FltF49;
  2567. IA64_FLOAT128 FltF50;
  2568. IA64_FLOAT128 FltF51;
  2569. IA64_FLOAT128 FltF52;
  2570. IA64_FLOAT128 FltF53;
  2571. IA64_FLOAT128 FltF54;
  2572. IA64_FLOAT128 FltF55;
  2573. IA64_FLOAT128 FltF56;
  2574. IA64_FLOAT128 FltF57;
  2575. IA64_FLOAT128 FltF58;
  2576. IA64_FLOAT128 FltF59;
  2577. IA64_FLOAT128 FltF60;
  2578. IA64_FLOAT128 FltF61;
  2579. IA64_FLOAT128 FltF62;
  2580. IA64_FLOAT128 FltF63;
  2581. IA64_FLOAT128 FltF64;
  2582. IA64_FLOAT128 FltF65;
  2583. IA64_FLOAT128 FltF66;
  2584. IA64_FLOAT128 FltF67;
  2585. IA64_FLOAT128 FltF68;
  2586. IA64_FLOAT128 FltF69;
  2587. IA64_FLOAT128 FltF70;
  2588. IA64_FLOAT128 FltF71;
  2589. IA64_FLOAT128 FltF72;
  2590. IA64_FLOAT128 FltF73;
  2591. IA64_FLOAT128 FltF74;
  2592. IA64_FLOAT128 FltF75;
  2593. IA64_FLOAT128 FltF76;
  2594. IA64_FLOAT128 FltF77;
  2595. IA64_FLOAT128 FltF78;
  2596. IA64_FLOAT128 FltF79;
  2597. IA64_FLOAT128 FltF80;
  2598. IA64_FLOAT128 FltF81;
  2599. IA64_FLOAT128 FltF82;
  2600. IA64_FLOAT128 FltF83;
  2601. IA64_FLOAT128 FltF84;
  2602. IA64_FLOAT128 FltF85;
  2603. IA64_FLOAT128 FltF86;
  2604. IA64_FLOAT128 FltF87;
  2605. IA64_FLOAT128 FltF88;
  2606. IA64_FLOAT128 FltF89;
  2607. IA64_FLOAT128 FltF90;
  2608. IA64_FLOAT128 FltF91;
  2609. IA64_FLOAT128 FltF92;
  2610. IA64_FLOAT128 FltF93;
  2611. IA64_FLOAT128 FltF94;
  2612. IA64_FLOAT128 FltF95;
  2613. IA64_FLOAT128 FltF96;
  2614. IA64_FLOAT128 FltF97;
  2615. IA64_FLOAT128 FltF98;
  2616. IA64_FLOAT128 FltF99;
  2617. IA64_FLOAT128 FltF100;
  2618. IA64_FLOAT128 FltF101;
  2619. IA64_FLOAT128 FltF102;
  2620. IA64_FLOAT128 FltF103;
  2621. IA64_FLOAT128 FltF104;
  2622. IA64_FLOAT128 FltF105;
  2623. IA64_FLOAT128 FltF106;
  2624. IA64_FLOAT128 FltF107;
  2625. IA64_FLOAT128 FltF108;
  2626. IA64_FLOAT128 FltF109;
  2627. IA64_FLOAT128 FltF110;
  2628. IA64_FLOAT128 FltF111;
  2629. IA64_FLOAT128 FltF112;
  2630. IA64_FLOAT128 FltF113;
  2631. IA64_FLOAT128 FltF114;
  2632. IA64_FLOAT128 FltF115;
  2633. IA64_FLOAT128 FltF116;
  2634. IA64_FLOAT128 FltF117;
  2635. IA64_FLOAT128 FltF118;
  2636. IA64_FLOAT128 FltF119;
  2637. IA64_FLOAT128 FltF120;
  2638. IA64_FLOAT128 FltF121;
  2639. IA64_FLOAT128 FltF122;
  2640. IA64_FLOAT128 FltF123;
  2641. IA64_FLOAT128 FltF124;
  2642. IA64_FLOAT128 FltF125;
  2643. IA64_FLOAT128 FltF126;
  2644. IA64_FLOAT128 FltF127;
  2645. DWORD64 DbI0;
  2646. DWORD64 DbI1;
  2647. DWORD64 DbI2;
  2648. DWORD64 DbI3;
  2649. DWORD64 DbI4;
  2650. DWORD64 DbI5;
  2651. DWORD64 DbI6;
  2652. DWORD64 DbI7;
  2653. DWORD64 DbD0;
  2654. DWORD64 DbD1;
  2655. DWORD64 DbD2;
  2656. DWORD64 DbD3;
  2657. DWORD64 DbD4;
  2658. DWORD64 DbD5;
  2659. DWORD64 DbD6;
  2660. DWORD64 DbD7;
  2661. DWORD64 ApUNAT;
  2662. DWORD64 ApLC;
  2663. DWORD64 ApEC;
  2664. DWORD64 ApCCV;
  2665. DWORD64 ApDCR;
  2666. DWORD64 RsPFS;
  2667. DWORD64 RsBSP;
  2668. DWORD64 RsBSPSTORE;
  2669. DWORD64 RsRSC;
  2670. DWORD64 RsRNAT;
  2671. DWORD64 StIPSR;
  2672. DWORD64 StIIP;
  2673. DWORD64 StIFS;
  2674. DWORD64 StFCR;
  2675. DWORD64 Eflag;
  2676. DWORD64 SegCSD;
  2677. DWORD64 SegSSD;
  2678. DWORD64 Cflag;
  2679. DWORD64 StFSR;
  2680. DWORD64 StFIR;
  2681. DWORD64 StFDR;
  2682. DWORD64 PfC0;
  2683. DWORD64 PfC1;
  2684. DWORD64 PfC2;
  2685. DWORD64 PfC3;
  2686. DWORD64 PfC4;
  2687. DWORD64 PfC5;
  2688. DWORD64 PfC6;
  2689. DWORD64 PfC7;
  2690. DWORD64 PfD0;
  2691. DWORD64 PfD1;
  2692. DWORD64 PfD2;
  2693. DWORD64 PfD3;
  2694. DWORD64 PfD4;
  2695. DWORD64 PfD5;
  2696. DWORD64 PfD6;
  2697. DWORD64 PfD7;
  2698. DWORD64 IntH16;
  2699. DWORD64 IntH17;
  2700. DWORD64 IntH18;
  2701. DWORD64 IntH19;
  2702. DWORD64 IntH20;
  2703. DWORD64 IntH21;
  2704. DWORD64 IntH22;
  2705. DWORD64 IntH23;
  2706. DWORD64 IntH24;
  2707. DWORD64 IntH25;
  2708. DWORD64 IntH26;
  2709. DWORD64 IntH27;
  2710. DWORD64 IntH28;
  2711. DWORD64 IntH29;
  2712. DWORD64 IntH30;
  2713. DWORD64 IntH31;
  2714. DWORD64 ApCPUID0;
  2715. DWORD64 ApCPUID1;
  2716. DWORD64 ApCPUID2;
  2717. DWORD64 ApCPUID3;
  2718. DWORD64 ApCPUID4;
  2719. DWORD64 ApCPUID5;
  2720. DWORD64 ApCPUID6;
  2721. DWORD64 ApCPUID7;
  2722. DWORD64 ApKR0;
  2723. DWORD64 ApKR1;
  2724. DWORD64 ApKR2;
  2725. DWORD64 ApKR3;
  2726. DWORD64 ApKR4;
  2727. DWORD64 ApKR5;
  2728. DWORD64 ApKR6;
  2729. DWORD64 ApKR7;
  2730. DWORD64 ApITC;
  2731. DWORD64 ApITM;
  2732. DWORD64 ApIVA;
  2733. DWORD64 ApPTA;
  2734. DWORD64 ApGPTA;
  2735. DWORD64 StISR;
  2736. DWORD64 StIFA;
  2737. DWORD64 StITIR;
  2738. DWORD64 StIIPA;
  2739. DWORD64 StIIM;
  2740. DWORD64 StIHA;
  2741. DWORD64 SaLID;
  2742. DWORD64 SaIVR;
  2743. DWORD64 SaTPR;
  2744. DWORD64 SaEOI;
  2745. DWORD64 SaIRR0;
  2746. DWORD64 SaIRR1;
  2747. DWORD64 SaIRR2;
  2748. DWORD64 SaIRR3;
  2749. DWORD64 SaITV;
  2750. DWORD64 SaPMV;
  2751. DWORD64 SaCMCV;
  2752. DWORD64 SaLRR0;
  2753. DWORD64 SaLRR1;
  2754. DWORD64 Rr0;
  2755. DWORD64 Rr1;
  2756. DWORD64 Rr2;
  2757. DWORD64 Rr3;
  2758. DWORD64 Rr4;
  2759. DWORD64 Rr5;
  2760. DWORD64 Rr6;
  2761. DWORD64 Rr7;
  2762. DWORD64 Pkr0;
  2763. DWORD64 Pkr1;
  2764. DWORD64 Pkr2;
  2765. DWORD64 Pkr3;
  2766. DWORD64 Pkr4;
  2767. DWORD64 Pkr5;
  2768. DWORD64 Pkr6;
  2769. DWORD64 Pkr7;
  2770. DWORD64 Pkr8;
  2771. DWORD64 Pkr9;
  2772. DWORD64 Pkr10;
  2773. DWORD64 Pkr11;
  2774. DWORD64 Pkr12;
  2775. DWORD64 Pkr13;
  2776. DWORD64 Pkr14;
  2777. DWORD64 Pkr15;
  2778. DWORD64 TrI0;
  2779. DWORD64 TrI1;
  2780. DWORD64 TrI2;
  2781. DWORD64 TrI3;
  2782. DWORD64 TrI4;
  2783. DWORD64 TrI5;
  2784. DWORD64 TrI6;
  2785. DWORD64 TrI7;
  2786. DWORD64 TrD0;
  2787. DWORD64 TrD1;
  2788. DWORD64 TrD2;
  2789. DWORD64 TrD3;
  2790. DWORD64 TrD4;
  2791. DWORD64 TrD5;
  2792. DWORD64 TrD6;
  2793. DWORD64 TrD7;
  2794. DWORD64 SrMSR0;
  2795. DWORD64 SrMSR1;
  2796. DWORD64 SrMSR2;
  2797. DWORD64 SrMSR3;
  2798. DWORD64 SrMSR4;
  2799. DWORD64 SrMSR5;
  2800. DWORD64 SrMSR6;
  2801. DWORD64 SrMSR7;
  2802. } EXDI_CONTEXT_IA64;
  2803. typedef struct _EXDI_CONTEXT_IA64 *PEXDI_CONTEXT_IA64;
  2804. extern RPC_IF_HANDLE __MIDL_itf_exdi_0268_v0_0_c_ifspec;
  2805. extern RPC_IF_HANDLE __MIDL_itf_exdi_0268_v0_0_s_ifspec;
  2806. #ifndef __IeXdiIA64Context_INTERFACE_DEFINED__
  2807. #define __IeXdiIA64Context_INTERFACE_DEFINED__
  2808. /* interface IeXdiIA64Context */
  2809. /* [ref][helpstring][uuid][object] */
  2810. EXTERN_C const IID IID_IeXdiIA64Context;
  2811. #if defined(__cplusplus) && !defined(CINTERFACE)
  2812. MIDL_INTERFACE("40c9adbb-de25-4ef4-a206-024440f78839")
  2813. IeXdiIA64Context : public IUnknown
  2814. {
  2815. public:
  2816. virtual HRESULT STDMETHODCALLTYPE GetContext(
  2817. /* [out][in] */ PEXDI_CONTEXT_IA64 pContext) = 0;
  2818. virtual HRESULT STDMETHODCALLTYPE SetContext(
  2819. /* [in] */ EXDI_CONTEXT_IA64 Context) = 0;
  2820. };
  2821. #else /* C style interface */
  2822. typedef struct IeXdiIA64ContextVtbl
  2823. {
  2824. BEGIN_INTERFACE
  2825. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2826. IeXdiIA64Context * This,
  2827. /* [in] */ REFIID riid,
  2828. /* [iid_is][out] */ void **ppvObject);
  2829. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2830. IeXdiIA64Context * This);
  2831. ULONG ( STDMETHODCALLTYPE *Release )(
  2832. IeXdiIA64Context * This);
  2833. HRESULT ( STDMETHODCALLTYPE *GetContext )(
  2834. IeXdiIA64Context * This,
  2835. /* [out][in] */ PEXDI_CONTEXT_IA64 pContext);
  2836. HRESULT ( STDMETHODCALLTYPE *SetContext )(
  2837. IeXdiIA64Context * This,
  2838. /* [in] */ EXDI_CONTEXT_IA64 Context);
  2839. END_INTERFACE
  2840. } IeXdiIA64ContextVtbl;
  2841. interface IeXdiIA64Context
  2842. {
  2843. CONST_VTBL struct IeXdiIA64ContextVtbl *lpVtbl;
  2844. };
  2845. #ifdef COBJMACROS
  2846. #define IeXdiIA64Context_QueryInterface(This,riid,ppvObject) \
  2847. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2848. #define IeXdiIA64Context_AddRef(This) \
  2849. (This)->lpVtbl -> AddRef(This)
  2850. #define IeXdiIA64Context_Release(This) \
  2851. (This)->lpVtbl -> Release(This)
  2852. #define IeXdiIA64Context_GetContext(This,pContext) \
  2853. (This)->lpVtbl -> GetContext(This,pContext)
  2854. #define IeXdiIA64Context_SetContext(This,Context) \
  2855. (This)->lpVtbl -> SetContext(This,Context)
  2856. #endif /* COBJMACROS */
  2857. #endif /* C style interface */
  2858. HRESULT STDMETHODCALLTYPE IeXdiIA64Context_GetContext_Proxy(
  2859. IeXdiIA64Context * This,
  2860. /* [out][in] */ PEXDI_CONTEXT_IA64 pContext);
  2861. void __RPC_STUB IeXdiIA64Context_GetContext_Stub(
  2862. IRpcStubBuffer *This,
  2863. IRpcChannelBuffer *_pRpcChannelBuffer,
  2864. PRPC_MESSAGE _pRpcMessage,
  2865. DWORD *_pdwStubPhase);
  2866. HRESULT STDMETHODCALLTYPE IeXdiIA64Context_SetContext_Proxy(
  2867. IeXdiIA64Context * This,
  2868. /* [in] */ EXDI_CONTEXT_IA64 Context);
  2869. void __RPC_STUB IeXdiIA64Context_SetContext_Stub(
  2870. IRpcStubBuffer *This,
  2871. IRpcChannelBuffer *_pRpcChannelBuffer,
  2872. PRPC_MESSAGE _pRpcMessage,
  2873. DWORD *_pdwStubPhase);
  2874. #endif /* __IeXdiIA64Context_INTERFACE_DEFINED__ */
  2875. #ifndef __IeXdiClientNotifyMemChg_INTERFACE_DEFINED__
  2876. #define __IeXdiClientNotifyMemChg_INTERFACE_DEFINED__
  2877. /* interface IeXdiClientNotifyMemChg */
  2878. /* [ref][helpstring][uuid][object] */
  2879. EXTERN_C const IID IID_IeXdiClientNotifyMemChg;
  2880. #if defined(__cplusplus) && !defined(CINTERFACE)
  2881. MIDL_INTERFACE("47486F67-6461-6C65-5844-49434E4D4300")
  2882. IeXdiClientNotifyMemChg : public IUnknown
  2883. {
  2884. public:
  2885. virtual HRESULT STDMETHODCALLTYPE NotifyMemoryChange(
  2886. /* [in] */ MEM_TYPE mtChanged,
  2887. /* [in] */ ADDRESS_TYPE Address,
  2888. /* [in] */ BYTE bAddressSpace,
  2889. /* [in] */ DWORD dwNbElemChanged,
  2890. /* [in] */ BYTE bAccessWidth) = 0;
  2891. };
  2892. #else /* C style interface */
  2893. typedef struct IeXdiClientNotifyMemChgVtbl
  2894. {
  2895. BEGIN_INTERFACE
  2896. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2897. IeXdiClientNotifyMemChg * This,
  2898. /* [in] */ REFIID riid,
  2899. /* [iid_is][out] */ void **ppvObject);
  2900. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2901. IeXdiClientNotifyMemChg * This);
  2902. ULONG ( STDMETHODCALLTYPE *Release )(
  2903. IeXdiClientNotifyMemChg * This);
  2904. HRESULT ( STDMETHODCALLTYPE *NotifyMemoryChange )(
  2905. IeXdiClientNotifyMemChg * This,
  2906. /* [in] */ MEM_TYPE mtChanged,
  2907. /* [in] */ ADDRESS_TYPE Address,
  2908. /* [in] */ BYTE bAddressSpace,
  2909. /* [in] */ DWORD dwNbElemChanged,
  2910. /* [in] */ BYTE bAccessWidth);
  2911. END_INTERFACE
  2912. } IeXdiClientNotifyMemChgVtbl;
  2913. interface IeXdiClientNotifyMemChg
  2914. {
  2915. CONST_VTBL struct IeXdiClientNotifyMemChgVtbl *lpVtbl;
  2916. };
  2917. #ifdef COBJMACROS
  2918. #define IeXdiClientNotifyMemChg_QueryInterface(This,riid,ppvObject) \
  2919. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2920. #define IeXdiClientNotifyMemChg_AddRef(This) \
  2921. (This)->lpVtbl -> AddRef(This)
  2922. #define IeXdiClientNotifyMemChg_Release(This) \
  2923. (This)->lpVtbl -> Release(This)
  2924. #define IeXdiClientNotifyMemChg_NotifyMemoryChange(This,mtChanged,Address,bAddressSpace,dwNbElemChanged,bAccessWidth) \
  2925. (This)->lpVtbl -> NotifyMemoryChange(This,mtChanged,Address,bAddressSpace,dwNbElemChanged,bAccessWidth)
  2926. #endif /* COBJMACROS */
  2927. #endif /* C style interface */
  2928. HRESULT STDMETHODCALLTYPE IeXdiClientNotifyMemChg_NotifyMemoryChange_Proxy(
  2929. IeXdiClientNotifyMemChg * This,
  2930. /* [in] */ MEM_TYPE mtChanged,
  2931. /* [in] */ ADDRESS_TYPE Address,
  2932. /* [in] */ BYTE bAddressSpace,
  2933. /* [in] */ DWORD dwNbElemChanged,
  2934. /* [in] */ BYTE bAccessWidth);
  2935. void __RPC_STUB IeXdiClientNotifyMemChg_NotifyMemoryChange_Stub(
  2936. IRpcStubBuffer *This,
  2937. IRpcChannelBuffer *_pRpcChannelBuffer,
  2938. PRPC_MESSAGE _pRpcMessage,
  2939. DWORD *_pdwStubPhase);
  2940. #endif /* __IeXdiClientNotifyMemChg_INTERFACE_DEFINED__ */
  2941. #ifndef __IeXdiClientNotifyRunChg_INTERFACE_DEFINED__
  2942. #define __IeXdiClientNotifyRunChg_INTERFACE_DEFINED__
  2943. /* interface IeXdiClientNotifyRunChg */
  2944. /* [ref][helpstring][uuid][object] */
  2945. EXTERN_C const IID IID_IeXdiClientNotifyRunChg;
  2946. #if defined(__cplusplus) && !defined(CINTERFACE)
  2947. MIDL_INTERFACE("47486F67-6461-6C65-5844-49434E525343")
  2948. IeXdiClientNotifyRunChg : public IUnknown
  2949. {
  2950. public:
  2951. virtual HRESULT STDMETHODCALLTYPE NotifyRunStateChange(
  2952. /* [in] */ RUN_STATUS_TYPE ersCurrent,
  2953. /* [in] */ HALT_REASON_TYPE ehrCurrent,
  2954. /* [in] */ ADDRESS_TYPE CurrentExecAddress,
  2955. /* [in] */ DWORD dwExceptionCode) = 0;
  2956. };
  2957. #else /* C style interface */
  2958. typedef struct IeXdiClientNotifyRunChgVtbl
  2959. {
  2960. BEGIN_INTERFACE
  2961. HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
  2962. IeXdiClientNotifyRunChg * This,
  2963. /* [in] */ REFIID riid,
  2964. /* [iid_is][out] */ void **ppvObject);
  2965. ULONG ( STDMETHODCALLTYPE *AddRef )(
  2966. IeXdiClientNotifyRunChg * This);
  2967. ULONG ( STDMETHODCALLTYPE *Release )(
  2968. IeXdiClientNotifyRunChg * This);
  2969. HRESULT ( STDMETHODCALLTYPE *NotifyRunStateChange )(
  2970. IeXdiClientNotifyRunChg * This,
  2971. /* [in] */ RUN_STATUS_TYPE ersCurrent,
  2972. /* [in] */ HALT_REASON_TYPE ehrCurrent,
  2973. /* [in] */ ADDRESS_TYPE CurrentExecAddress,
  2974. /* [in] */ DWORD dwExceptionCode);
  2975. END_INTERFACE
  2976. } IeXdiClientNotifyRunChgVtbl;
  2977. interface IeXdiClientNotifyRunChg
  2978. {
  2979. CONST_VTBL struct IeXdiClientNotifyRunChgVtbl *lpVtbl;
  2980. };
  2981. #ifdef COBJMACROS
  2982. #define IeXdiClientNotifyRunChg_QueryInterface(This,riid,ppvObject) \
  2983. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  2984. #define IeXdiClientNotifyRunChg_AddRef(This) \
  2985. (This)->lpVtbl -> AddRef(This)
  2986. #define IeXdiClientNotifyRunChg_Release(This) \
  2987. (This)->lpVtbl -> Release(This)
  2988. #define IeXdiClientNotifyRunChg_NotifyRunStateChange(This,ersCurrent,ehrCurrent,CurrentExecAddress,dwExceptionCode) \
  2989. (This)->lpVtbl -> NotifyRunStateChange(This,ersCurrent,ehrCurrent,CurrentExecAddress,dwExceptionCode)
  2990. #endif /* COBJMACROS */
  2991. #endif /* C style interface */
  2992. HRESULT STDMETHODCALLTYPE IeXdiClientNotifyRunChg_NotifyRunStateChange_Proxy(
  2993. IeXdiClientNotifyRunChg * This,
  2994. /* [in] */ RUN_STATUS_TYPE ersCurrent,
  2995. /* [in] */ HALT_REASON_TYPE ehrCurrent,
  2996. /* [in] */ ADDRESS_TYPE CurrentExecAddress,
  2997. /* [in] */ DWORD dwExceptionCode);
  2998. void __RPC_STUB IeXdiClientNotifyRunChg_NotifyRunStateChange_Stub(
  2999. IRpcStubBuffer *This,
  3000. IRpcChannelBuffer *_pRpcChannelBuffer,
  3001. PRPC_MESSAGE _pRpcMessage,
  3002. DWORD *_pdwStubPhase);
  3003. #endif /* __IeXdiClientNotifyRunChg_INTERFACE_DEFINED__ */
  3004. /* Additional Prototypes for ALL interfaces */
  3005. /* end of Additional Prototypes */
  3006. #ifdef __cplusplus
  3007. }
  3008. #endif
  3009. #endif