Source code of Windows XP (NT5)
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.

293 lines
7.2 KiB

  1. #pragma warning( disable: 4049 ) /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3. /* File created by MIDL compiler version 6.00.0328 */
  4. /* at Wed Jul 05 12:13:54 2000
  5. */
  6. /* Compiler settings for x86_64.idl:
  7. Os (OptLev=s), W1, Zp8, env=Win32 (32b run)
  8. protocol : dce , ms_ext, c_ext
  9. error checks: allocation ref bounds_check enum stub_data
  10. VC __declspec() decoration level:
  11. __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  12. DECLSPEC_UUID(), MIDL_INTERFACE()
  13. */
  14. //@@MIDL_FILE_HEADING( )
  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__ 440
  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 __x86_64_h__
  29. #define __x86_64_h__
  30. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  31. #pragma once
  32. #endif
  33. /* Forward Declarations */
  34. #ifndef __IeXdiX86_64Context_FWD_DEFINED__
  35. #define __IeXdiX86_64Context_FWD_DEFINED__
  36. typedef interface IeXdiX86_64Context IeXdiX86_64Context;
  37. #endif /* __IeXdiX86_64Context_FWD_DEFINED__ */
  38. /* header files for imported files */
  39. #include "exdi.h"
  40. #ifdef __cplusplus
  41. extern "C"{
  42. #endif
  43. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  44. void __RPC_USER MIDL_user_free( void __RPC_FAR * );
  45. /* interface __MIDL_itf_x86_64_0000 */
  46. /* [local] */
  47. // The following constants are bit definitions for the ModeFlags value in CONTEXT_X86_64.
  48. // They are provided to allow debuggers to correctly disassemble instructions based on
  49. // the current operating mode of the processor.
  50. #define X86_64_MODE_D (0x0001) // D bit from the current CS selector
  51. #define X86_64_MODE_L (0x0002) // L bit (long mode) from the current CS selector
  52. #define X86_64_MODE_LME (0x0004) // LME bit (lomg mode enable) from extended feature MSR
  53. #define X86_64_MODE_REX (0x0008) // REX bit (register extension) from extended feature MSR
  54. typedef struct _SEG64_DESC_INFO
  55. {
  56. DWORD64 SegBase;
  57. DWORD64 SegLimit;
  58. DWORD SegFlags;
  59. } SEG64_DESC_INFO;
  60. typedef struct _SSE_REG
  61. {
  62. DWORD Reg0;
  63. DWORD Reg1;
  64. DWORD Reg2;
  65. DWORD Reg3;
  66. } SSE_REG;
  67. typedef struct _CONTEXT_X86_64
  68. {
  69. struct
  70. {
  71. BOOL fSegmentRegs;
  72. BOOL fControlRegs;
  73. BOOL fIntegerRegs;
  74. BOOL fFloatingPointRegs;
  75. BOOL fDebugRegs;
  76. BOOL fSegmentDescriptors;
  77. BOOL fSSERegisters;
  78. BOOL fSystemRegisters;
  79. } RegGroupSelection;
  80. DWORD SegCs;
  81. DWORD SegSs;
  82. DWORD SegGs;
  83. DWORD SegFs;
  84. DWORD SegEs;
  85. DWORD SegDs;
  86. DWORD64 ModeFlags;
  87. DWORD64 EFlags;
  88. DWORD64 Rbp;
  89. DWORD64 Rip;
  90. DWORD64 Rsp;
  91. DWORD64 Rax;
  92. DWORD64 Rbx;
  93. DWORD64 Rcx;
  94. DWORD64 Rdx;
  95. DWORD64 Rsi;
  96. DWORD64 Rdi;
  97. DWORD64 R8;
  98. DWORD64 R9;
  99. DWORD64 R10;
  100. DWORD64 R11;
  101. DWORD64 R12;
  102. DWORD64 R13;
  103. DWORD64 R14;
  104. DWORD64 R15;
  105. DWORD ControlWord;
  106. DWORD StatusWord;
  107. DWORD TagWord;
  108. DWORD ErrorOffset;
  109. DWORD ErrorSelector;
  110. DWORD DataOffset;
  111. DWORD DataSelector;
  112. BYTE RegisterArea[ 80 ];
  113. DWORD64 Dr0;
  114. DWORD64 Dr1;
  115. DWORD64 Dr2;
  116. DWORD64 Dr3;
  117. DWORD64 Dr6;
  118. DWORD64 Dr7;
  119. SEG64_DESC_INFO DescriptorCs;
  120. SEG64_DESC_INFO DescriptorSs;
  121. SEG64_DESC_INFO DescriptorGs;
  122. SEG64_DESC_INFO DescriptorFs;
  123. SEG64_DESC_INFO DescriptorEs;
  124. SEG64_DESC_INFO DescriptorDs;
  125. DWORD64 IDTBase;
  126. DWORD64 IDTLimit;
  127. DWORD64 GDTBase;
  128. DWORD64 GDTLimit;
  129. DWORD SelLDT;
  130. SEG64_DESC_INFO SegLDT;
  131. DWORD SelTSS;
  132. SEG64_DESC_INFO SegTSS;
  133. DWORD64 RegCr0;
  134. DWORD64 RegCr2;
  135. DWORD64 RegCr3;
  136. DWORD64 RegCr4;
  137. DWORD64 RegCr8;
  138. DWORD RegMXCSR;
  139. SSE_REG RegSSE[ 16 ];
  140. } CONTEXT_X86_64;
  141. typedef struct _CONTEXT_X86_64 __RPC_FAR *PCONTEXT_X86_64;
  142. extern RPC_IF_HANDLE __MIDL_itf_x86_64_0000_v0_0_c_ifspec;
  143. extern RPC_IF_HANDLE __MIDL_itf_x86_64_0000_v0_0_s_ifspec;
  144. #ifndef __IeXdiX86_64Context_INTERFACE_DEFINED__
  145. #define __IeXdiX86_64Context_INTERFACE_DEFINED__
  146. /* interface IeXdiX86_64Context */
  147. /* [ref][helpstring][uuid][object] */
  148. EXTERN_C const IID IID_IeXdiX86_64Context;
  149. #if defined(__cplusplus) && !defined(CINTERFACE)
  150. MIDL_INTERFACE("4795B125-6CDE-4e76-B8D3-D5ED69ECE739")
  151. IeXdiX86_64Context : public IUnknown
  152. {
  153. public:
  154. virtual HRESULT STDMETHODCALLTYPE GetContext(
  155. /* [out][in] */ PCONTEXT_X86_64 pContext) = 0;
  156. virtual HRESULT STDMETHODCALLTYPE SetContext(
  157. /* [in] */ CONTEXT_X86_64 Context) = 0;
  158. };
  159. #else /* C style interface */
  160. typedef struct IeXdiX86_64ContextVtbl
  161. {
  162. BEGIN_INTERFACE
  163. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )(
  164. IeXdiX86_64Context __RPC_FAR * This,
  165. /* [in] */ REFIID riid,
  166. /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  167. ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )(
  168. IeXdiX86_64Context __RPC_FAR * This);
  169. ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )(
  170. IeXdiX86_64Context __RPC_FAR * This);
  171. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetContext )(
  172. IeXdiX86_64Context __RPC_FAR * This,
  173. /* [out][in] */ PCONTEXT_X86_64 pContext);
  174. HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetContext )(
  175. IeXdiX86_64Context __RPC_FAR * This,
  176. /* [in] */ CONTEXT_X86_64 Context);
  177. END_INTERFACE
  178. } IeXdiX86_64ContextVtbl;
  179. interface IeXdiX86_64Context
  180. {
  181. CONST_VTBL struct IeXdiX86_64ContextVtbl __RPC_FAR *lpVtbl;
  182. };
  183. #ifdef COBJMACROS
  184. #define IeXdiX86_64Context_QueryInterface(This,riid,ppvObject) \
  185. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  186. #define IeXdiX86_64Context_AddRef(This) \
  187. (This)->lpVtbl -> AddRef(This)
  188. #define IeXdiX86_64Context_Release(This) \
  189. (This)->lpVtbl -> Release(This)
  190. #define IeXdiX86_64Context_GetContext(This,pContext) \
  191. (This)->lpVtbl -> GetContext(This,pContext)
  192. #define IeXdiX86_64Context_SetContext(This,Context) \
  193. (This)->lpVtbl -> SetContext(This,Context)
  194. #endif /* COBJMACROS */
  195. #endif /* C style interface */
  196. HRESULT STDMETHODCALLTYPE IeXdiX86_64Context_GetContext_Proxy(
  197. IeXdiX86_64Context __RPC_FAR * This,
  198. /* [out][in] */ PCONTEXT_X86_64 pContext);
  199. void __RPC_STUB IeXdiX86_64Context_GetContext_Stub(
  200. IRpcStubBuffer *This,
  201. IRpcChannelBuffer *_pRpcChannelBuffer,
  202. PRPC_MESSAGE _pRpcMessage,
  203. DWORD *_pdwStubPhase);
  204. HRESULT STDMETHODCALLTYPE IeXdiX86_64Context_SetContext_Proxy(
  205. IeXdiX86_64Context __RPC_FAR * This,
  206. /* [in] */ CONTEXT_X86_64 Context);
  207. void __RPC_STUB IeXdiX86_64Context_SetContext_Stub(
  208. IRpcStubBuffer *This,
  209. IRpcChannelBuffer *_pRpcChannelBuffer,
  210. PRPC_MESSAGE _pRpcMessage,
  211. DWORD *_pdwStubPhase);
  212. #endif /* __IeXdiX86_64Context_INTERFACE_DEFINED__ */
  213. /* Additional Prototypes for ALL interfaces */
  214. /* end of Additional Prototypes */
  215. #ifdef __cplusplus
  216. }
  217. #endif
  218. #endif