1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4
5
6
7/* this ALWAYS GENERATED file contains the definitions for the interfaces */
8
9
10 /* File created by MIDL compiler version 8.00.0603 */
11/* @@MIDL_FILE_HEADING( ) */
12
13#pragma warning( disable: 4049 ) /* more than 64k source lines */
14
15
16/* verify that the <rpcndr.h> version is high enough to compile this file*/
17#ifndef __REQUIRED_RPCNDR_H_VERSION__
18#define __REQUIRED_RPCNDR_H_VERSION__ 475
19#endif
20
21#include "rpc.h"
22#include "rpcndr.h"
23
24#ifndef __RPCNDR_H_VERSION__
25#error this stub requires an updated version of <rpcndr.h>
26#endif // __RPCNDR_H_VERSION__
27
28#ifndef COM_NO_WINDOWS_H
29#include "windows.h"
30#include "ole2.h"
31#endif /*COM_NO_WINDOWS_H*/
32
33#ifndef __clrdata_h__
34#define __clrdata_h__
35
36#if defined(_MSC_VER) && (_MSC_VER >= 1020)
37#pragma once
38#endif
39
40/* Forward Declarations */
41
42#ifndef __ICLRDataTarget_FWD_DEFINED__
43#define __ICLRDataTarget_FWD_DEFINED__
44typedef interface ICLRDataTarget ICLRDataTarget;
45
46#endif /* __ICLRDataTarget_FWD_DEFINED__ */
47
48
49#ifndef __ICLRDataTarget2_FWD_DEFINED__
50#define __ICLRDataTarget2_FWD_DEFINED__
51typedef interface ICLRDataTarget2 ICLRDataTarget2;
52
53#endif /* __ICLRDataTarget2_FWD_DEFINED__ */
54
55
56#ifndef __ICLRDataTarget3_FWD_DEFINED__
57#define __ICLRDataTarget3_FWD_DEFINED__
58typedef interface ICLRDataTarget3 ICLRDataTarget3;
59
60#endif /* __ICLRDataTarget3_FWD_DEFINED__ */
61
62
63#ifndef __ICLRMetadataLocator_FWD_DEFINED__
64#define __ICLRMetadataLocator_FWD_DEFINED__
65typedef interface ICLRMetadataLocator ICLRMetadataLocator;
66
67#endif /* __ICLRMetadataLocator_FWD_DEFINED__ */
68
69
70#ifndef __ICLRDataEnumMemoryRegionsCallback_FWD_DEFINED__
71#define __ICLRDataEnumMemoryRegionsCallback_FWD_DEFINED__
72typedef interface ICLRDataEnumMemoryRegionsCallback ICLRDataEnumMemoryRegionsCallback;
73
74#endif /* __ICLRDataEnumMemoryRegionsCallback_FWD_DEFINED__ */
75
76
77#ifndef __ICLRDataEnumMemoryRegionsCallback2_FWD_DEFINED__
78#define __ICLRDataEnumMemoryRegionsCallback2_FWD_DEFINED__
79typedef interface ICLRDataEnumMemoryRegionsCallback2 ICLRDataEnumMemoryRegionsCallback2;
80
81#endif /* __ICLRDataEnumMemoryRegionsCallback2_FWD_DEFINED__ */
82
83
84#ifndef __ICLRDataEnumMemoryRegions_FWD_DEFINED__
85#define __ICLRDataEnumMemoryRegions_FWD_DEFINED__
86typedef interface ICLRDataEnumMemoryRegions ICLRDataEnumMemoryRegions;
87
88#endif /* __ICLRDataEnumMemoryRegions_FWD_DEFINED__ */
89
90
91/* header files for imported files */
92#include "unknwn.h"
93
94#ifdef __cplusplus
95extern "C"{
96#endif
97
98
99/* interface __MIDL_itf_clrdata_0000_0000 */
100/* [local] */
101
102
103
104
105
106
107
108typedef ULONG64 CLRDATA_ADDRESS;
109
110STDAPI CLRDataCreateInstance(REFIID iid, ICLRDataTarget* target, void** iface);
111typedef HRESULT (STDAPICALLTYPE* PFN_CLRDataCreateInstance)(REFIID iid, ICLRDataTarget* target, void** iface);
112
113
114extern RPC_IF_HANDLE __MIDL_itf_clrdata_0000_0000_v0_0_c_ifspec;
115extern RPC_IF_HANDLE __MIDL_itf_clrdata_0000_0000_v0_0_s_ifspec;
116
117#ifndef __ICLRDataTarget_INTERFACE_DEFINED__
118#define __ICLRDataTarget_INTERFACE_DEFINED__
119
120/* interface ICLRDataTarget */
121/* [unique][uuid][local][object] */
122
123
124EXTERN_C const IID IID_ICLRDataTarget;
125
126#if defined(__cplusplus) && !defined(CINTERFACE)
127
128 MIDL_INTERFACE("3E11CCEE-D08B-43e5-AF01-32717A64DA03")
129 ICLRDataTarget : public IUnknown
130 {
131 public:
132 virtual HRESULT STDMETHODCALLTYPE GetMachineType(
133 /* [out] */ ULONG32 *machineType) = 0;
134
135 virtual HRESULT STDMETHODCALLTYPE GetPointerSize(
136 /* [out] */ ULONG32 *pointerSize) = 0;
137
138 virtual HRESULT STDMETHODCALLTYPE GetImageBase(
139 /* [string][in] */ LPCWSTR imagePath,
140 /* [out] */ CLRDATA_ADDRESS *baseAddress) = 0;
141
142 virtual HRESULT STDMETHODCALLTYPE ReadVirtual(
143 /* [in] */ CLRDATA_ADDRESS address,
144 /* [length_is][size_is][out] */ BYTE *buffer,
145 /* [in] */ ULONG32 bytesRequested,
146 /* [out] */ ULONG32 *bytesRead) = 0;
147
148 virtual HRESULT STDMETHODCALLTYPE WriteVirtual(
149 /* [in] */ CLRDATA_ADDRESS address,
150 /* [size_is][in] */ BYTE *buffer,
151 /* [in] */ ULONG32 bytesRequested,
152 /* [out] */ ULONG32 *bytesWritten) = 0;
153
154 virtual HRESULT STDMETHODCALLTYPE GetTLSValue(
155 /* [in] */ ULONG32 threadID,
156 /* [in] */ ULONG32 index,
157 /* [out] */ CLRDATA_ADDRESS *value) = 0;
158
159 virtual HRESULT STDMETHODCALLTYPE SetTLSValue(
160 /* [in] */ ULONG32 threadID,
161 /* [in] */ ULONG32 index,
162 /* [in] */ CLRDATA_ADDRESS value) = 0;
163
164 virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadID(
165 /* [out] */ ULONG32 *threadID) = 0;
166
167 virtual HRESULT STDMETHODCALLTYPE GetThreadContext(
168 /* [in] */ ULONG32 threadID,
169 /* [in] */ ULONG32 contextFlags,
170 /* [in] */ ULONG32 contextSize,
171 /* [size_is][out] */ BYTE *context) = 0;
172
173 virtual HRESULT STDMETHODCALLTYPE SetThreadContext(
174 /* [in] */ ULONG32 threadID,
175 /* [in] */ ULONG32 contextSize,
176 /* [size_is][in] */ BYTE *context) = 0;
177
178 virtual HRESULT STDMETHODCALLTYPE Request(
179 /* [in] */ ULONG32 reqCode,
180 /* [in] */ ULONG32 inBufferSize,
181 /* [size_is][in] */ BYTE *inBuffer,
182 /* [in] */ ULONG32 outBufferSize,
183 /* [size_is][out] */ BYTE *outBuffer) = 0;
184
185 };
186
187
188#else /* C style interface */
189
190 typedef struct ICLRDataTargetVtbl
191 {
192 BEGIN_INTERFACE
193
194 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
195 ICLRDataTarget * This,
196 /* [in] */ REFIID riid,
197 /* [annotation][iid_is][out] */
198 _COM_Outptr_ void **ppvObject);
199
200 ULONG ( STDMETHODCALLTYPE *AddRef )(
201 ICLRDataTarget * This);
202
203 ULONG ( STDMETHODCALLTYPE *Release )(
204 ICLRDataTarget * This);
205
206 HRESULT ( STDMETHODCALLTYPE *GetMachineType )(
207 ICLRDataTarget * This,
208 /* [out] */ ULONG32 *machineType);
209
210 HRESULT ( STDMETHODCALLTYPE *GetPointerSize )(
211 ICLRDataTarget * This,
212 /* [out] */ ULONG32 *pointerSize);
213
214 HRESULT ( STDMETHODCALLTYPE *GetImageBase )(
215 ICLRDataTarget * This,
216 /* [string][in] */ LPCWSTR imagePath,
217 /* [out] */ CLRDATA_ADDRESS *baseAddress);
218
219 HRESULT ( STDMETHODCALLTYPE *ReadVirtual )(
220 ICLRDataTarget * This,
221 /* [in] */ CLRDATA_ADDRESS address,
222 /* [length_is][size_is][out] */ BYTE *buffer,
223 /* [in] */ ULONG32 bytesRequested,
224 /* [out] */ ULONG32 *bytesRead);
225
226 HRESULT ( STDMETHODCALLTYPE *WriteVirtual )(
227 ICLRDataTarget * This,
228 /* [in] */ CLRDATA_ADDRESS address,
229 /* [size_is][in] */ BYTE *buffer,
230 /* [in] */ ULONG32 bytesRequested,
231 /* [out] */ ULONG32 *bytesWritten);
232
233 HRESULT ( STDMETHODCALLTYPE *GetTLSValue )(
234 ICLRDataTarget * This,
235 /* [in] */ ULONG32 threadID,
236 /* [in] */ ULONG32 index,
237 /* [out] */ CLRDATA_ADDRESS *value);
238
239 HRESULT ( STDMETHODCALLTYPE *SetTLSValue )(
240 ICLRDataTarget * This,
241 /* [in] */ ULONG32 threadID,
242 /* [in] */ ULONG32 index,
243 /* [in] */ CLRDATA_ADDRESS value);
244
245 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
246 ICLRDataTarget * This,
247 /* [out] */ ULONG32 *threadID);
248
249 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
250 ICLRDataTarget * This,
251 /* [in] */ ULONG32 threadID,
252 /* [in] */ ULONG32 contextFlags,
253 /* [in] */ ULONG32 contextSize,
254 /* [size_is][out] */ BYTE *context);
255
256 HRESULT ( STDMETHODCALLTYPE *SetThreadContext )(
257 ICLRDataTarget * This,
258 /* [in] */ ULONG32 threadID,
259 /* [in] */ ULONG32 contextSize,
260 /* [size_is][in] */ BYTE *context);
261
262 HRESULT ( STDMETHODCALLTYPE *Request )(
263 ICLRDataTarget * This,
264 /* [in] */ ULONG32 reqCode,
265 /* [in] */ ULONG32 inBufferSize,
266 /* [size_is][in] */ BYTE *inBuffer,
267 /* [in] */ ULONG32 outBufferSize,
268 /* [size_is][out] */ BYTE *outBuffer);
269
270 END_INTERFACE
271 } ICLRDataTargetVtbl;
272
273 interface ICLRDataTarget
274 {
275 CONST_VTBL struct ICLRDataTargetVtbl *lpVtbl;
276 };
277
278
279
280#ifdef COBJMACROS
281
282
283#define ICLRDataTarget_QueryInterface(This,riid,ppvObject) \
284 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
285
286#define ICLRDataTarget_AddRef(This) \
287 ( (This)->lpVtbl -> AddRef(This) )
288
289#define ICLRDataTarget_Release(This) \
290 ( (This)->lpVtbl -> Release(This) )
291
292
293#define ICLRDataTarget_GetMachineType(This,machineType) \
294 ( (This)->lpVtbl -> GetMachineType(This,machineType) )
295
296#define ICLRDataTarget_GetPointerSize(This,pointerSize) \
297 ( (This)->lpVtbl -> GetPointerSize(This,pointerSize) )
298
299#define ICLRDataTarget_GetImageBase(This,imagePath,baseAddress) \
300 ( (This)->lpVtbl -> GetImageBase(This,imagePath,baseAddress) )
301
302#define ICLRDataTarget_ReadVirtual(This,address,buffer,bytesRequested,bytesRead) \
303 ( (This)->lpVtbl -> ReadVirtual(This,address,buffer,bytesRequested,bytesRead) )
304
305#define ICLRDataTarget_WriteVirtual(This,address,buffer,bytesRequested,bytesWritten) \
306 ( (This)->lpVtbl -> WriteVirtual(This,address,buffer,bytesRequested,bytesWritten) )
307
308#define ICLRDataTarget_GetTLSValue(This,threadID,index,value) \
309 ( (This)->lpVtbl -> GetTLSValue(This,threadID,index,value) )
310
311#define ICLRDataTarget_SetTLSValue(This,threadID,index,value) \
312 ( (This)->lpVtbl -> SetTLSValue(This,threadID,index,value) )
313
314#define ICLRDataTarget_GetCurrentThreadID(This,threadID) \
315 ( (This)->lpVtbl -> GetCurrentThreadID(This,threadID) )
316
317#define ICLRDataTarget_GetThreadContext(This,threadID,contextFlags,contextSize,context) \
318 ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextFlags,contextSize,context) )
319
320#define ICLRDataTarget_SetThreadContext(This,threadID,contextSize,context) \
321 ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) )
322
323#define ICLRDataTarget_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
324 ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
325
326#endif /* COBJMACROS */
327
328
329#endif /* C style interface */
330
331
332
333
334#endif /* __ICLRDataTarget_INTERFACE_DEFINED__ */
335
336
337#ifndef __ICLRDataTarget2_INTERFACE_DEFINED__
338#define __ICLRDataTarget2_INTERFACE_DEFINED__
339
340/* interface ICLRDataTarget2 */
341/* [unique][uuid][local][object] */
342
343
344EXTERN_C const IID IID_ICLRDataTarget2;
345
346#if defined(__cplusplus) && !defined(CINTERFACE)
347
348 MIDL_INTERFACE("6d05fae3-189c-4630-a6dc-1c251e1c01ab")
349 ICLRDataTarget2 : public ICLRDataTarget
350 {
351 public:
352 virtual HRESULT STDMETHODCALLTYPE AllocVirtual(
353 /* [in] */ CLRDATA_ADDRESS addr,
354 /* [in] */ ULONG32 size,
355 /* [in] */ ULONG32 typeFlags,
356 /* [in] */ ULONG32 protectFlags,
357 /* [out] */ CLRDATA_ADDRESS *virt) = 0;
358
359 virtual HRESULT STDMETHODCALLTYPE FreeVirtual(
360 /* [in] */ CLRDATA_ADDRESS addr,
361 /* [in] */ ULONG32 size,
362 /* [in] */ ULONG32 typeFlags) = 0;
363
364 };
365
366
367#else /* C style interface */
368
369 typedef struct ICLRDataTarget2Vtbl
370 {
371 BEGIN_INTERFACE
372
373 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
374 ICLRDataTarget2 * This,
375 /* [in] */ REFIID riid,
376 /* [annotation][iid_is][out] */
377 _COM_Outptr_ void **ppvObject);
378
379 ULONG ( STDMETHODCALLTYPE *AddRef )(
380 ICLRDataTarget2 * This);
381
382 ULONG ( STDMETHODCALLTYPE *Release )(
383 ICLRDataTarget2 * This);
384
385 HRESULT ( STDMETHODCALLTYPE *GetMachineType )(
386 ICLRDataTarget2 * This,
387 /* [out] */ ULONG32 *machineType);
388
389 HRESULT ( STDMETHODCALLTYPE *GetPointerSize )(
390 ICLRDataTarget2 * This,
391 /* [out] */ ULONG32 *pointerSize);
392
393 HRESULT ( STDMETHODCALLTYPE *GetImageBase )(
394 ICLRDataTarget2 * This,
395 /* [string][in] */ LPCWSTR imagePath,
396 /* [out] */ CLRDATA_ADDRESS *baseAddress);
397
398 HRESULT ( STDMETHODCALLTYPE *ReadVirtual )(
399 ICLRDataTarget2 * This,
400 /* [in] */ CLRDATA_ADDRESS address,
401 /* [length_is][size_is][out] */ BYTE *buffer,
402 /* [in] */ ULONG32 bytesRequested,
403 /* [out] */ ULONG32 *bytesRead);
404
405 HRESULT ( STDMETHODCALLTYPE *WriteVirtual )(
406 ICLRDataTarget2 * This,
407 /* [in] */ CLRDATA_ADDRESS address,
408 /* [size_is][in] */ BYTE *buffer,
409 /* [in] */ ULONG32 bytesRequested,
410 /* [out] */ ULONG32 *bytesWritten);
411
412 HRESULT ( STDMETHODCALLTYPE *GetTLSValue )(
413 ICLRDataTarget2 * This,
414 /* [in] */ ULONG32 threadID,
415 /* [in] */ ULONG32 index,
416 /* [out] */ CLRDATA_ADDRESS *value);
417
418 HRESULT ( STDMETHODCALLTYPE *SetTLSValue )(
419 ICLRDataTarget2 * This,
420 /* [in] */ ULONG32 threadID,
421 /* [in] */ ULONG32 index,
422 /* [in] */ CLRDATA_ADDRESS value);
423
424 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
425 ICLRDataTarget2 * This,
426 /* [out] */ ULONG32 *threadID);
427
428 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
429 ICLRDataTarget2 * This,
430 /* [in] */ ULONG32 threadID,
431 /* [in] */ ULONG32 contextFlags,
432 /* [in] */ ULONG32 contextSize,
433 /* [size_is][out] */ BYTE *context);
434
435 HRESULT ( STDMETHODCALLTYPE *SetThreadContext )(
436 ICLRDataTarget2 * This,
437 /* [in] */ ULONG32 threadID,
438 /* [in] */ ULONG32 contextSize,
439 /* [size_is][in] */ BYTE *context);
440
441 HRESULT ( STDMETHODCALLTYPE *Request )(
442 ICLRDataTarget2 * This,
443 /* [in] */ ULONG32 reqCode,
444 /* [in] */ ULONG32 inBufferSize,
445 /* [size_is][in] */ BYTE *inBuffer,
446 /* [in] */ ULONG32 outBufferSize,
447 /* [size_is][out] */ BYTE *outBuffer);
448
449 HRESULT ( STDMETHODCALLTYPE *AllocVirtual )(
450 ICLRDataTarget2 * This,
451 /* [in] */ CLRDATA_ADDRESS addr,
452 /* [in] */ ULONG32 size,
453 /* [in] */ ULONG32 typeFlags,
454 /* [in] */ ULONG32 protectFlags,
455 /* [out] */ CLRDATA_ADDRESS *virt);
456
457 HRESULT ( STDMETHODCALLTYPE *FreeVirtual )(
458 ICLRDataTarget2 * This,
459 /* [in] */ CLRDATA_ADDRESS addr,
460 /* [in] */ ULONG32 size,
461 /* [in] */ ULONG32 typeFlags);
462
463 END_INTERFACE
464 } ICLRDataTarget2Vtbl;
465
466 interface ICLRDataTarget2
467 {
468 CONST_VTBL struct ICLRDataTarget2Vtbl *lpVtbl;
469 };
470
471
472
473#ifdef COBJMACROS
474
475
476#define ICLRDataTarget2_QueryInterface(This,riid,ppvObject) \
477 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
478
479#define ICLRDataTarget2_AddRef(This) \
480 ( (This)->lpVtbl -> AddRef(This) )
481
482#define ICLRDataTarget2_Release(This) \
483 ( (This)->lpVtbl -> Release(This) )
484
485
486#define ICLRDataTarget2_GetMachineType(This,machineType) \
487 ( (This)->lpVtbl -> GetMachineType(This,machineType) )
488
489#define ICLRDataTarget2_GetPointerSize(This,pointerSize) \
490 ( (This)->lpVtbl -> GetPointerSize(This,pointerSize) )
491
492#define ICLRDataTarget2_GetImageBase(This,imagePath,baseAddress) \
493 ( (This)->lpVtbl -> GetImageBase(This,imagePath,baseAddress) )
494
495#define ICLRDataTarget2_ReadVirtual(This,address,buffer,bytesRequested,bytesRead) \
496 ( (This)->lpVtbl -> ReadVirtual(This,address,buffer,bytesRequested,bytesRead) )
497
498#define ICLRDataTarget2_WriteVirtual(This,address,buffer,bytesRequested,bytesWritten) \
499 ( (This)->lpVtbl -> WriteVirtual(This,address,buffer,bytesRequested,bytesWritten) )
500
501#define ICLRDataTarget2_GetTLSValue(This,threadID,index,value) \
502 ( (This)->lpVtbl -> GetTLSValue(This,threadID,index,value) )
503
504#define ICLRDataTarget2_SetTLSValue(This,threadID,index,value) \
505 ( (This)->lpVtbl -> SetTLSValue(This,threadID,index,value) )
506
507#define ICLRDataTarget2_GetCurrentThreadID(This,threadID) \
508 ( (This)->lpVtbl -> GetCurrentThreadID(This,threadID) )
509
510#define ICLRDataTarget2_GetThreadContext(This,threadID,contextFlags,contextSize,context) \
511 ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextFlags,contextSize,context) )
512
513#define ICLRDataTarget2_SetThreadContext(This,threadID,contextSize,context) \
514 ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) )
515
516#define ICLRDataTarget2_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
517 ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
518
519
520#define ICLRDataTarget2_AllocVirtual(This,addr,size,typeFlags,protectFlags,virt) \
521 ( (This)->lpVtbl -> AllocVirtual(This,addr,size,typeFlags,protectFlags,virt) )
522
523#define ICLRDataTarget2_FreeVirtual(This,addr,size,typeFlags) \
524 ( (This)->lpVtbl -> FreeVirtual(This,addr,size,typeFlags) )
525
526#endif /* COBJMACROS */
527
528
529#endif /* C style interface */
530
531
532
533
534#endif /* __ICLRDataTarget2_INTERFACE_DEFINED__ */
535
536
537#ifndef __ICLRDataTarget3_INTERFACE_DEFINED__
538#define __ICLRDataTarget3_INTERFACE_DEFINED__
539
540/* interface ICLRDataTarget3 */
541/* [unique][uuid][local][object] */
542
543
544EXTERN_C const IID IID_ICLRDataTarget3;
545
546#if defined(__cplusplus) && !defined(CINTERFACE)
547
548 MIDL_INTERFACE("a5664f95-0af4-4a1b-960e-2f3346b4214c")
549 ICLRDataTarget3 : public ICLRDataTarget2
550 {
551 public:
552 virtual HRESULT STDMETHODCALLTYPE GetExceptionRecord(
553 /* [in] */ ULONG32 bufferSize,
554 /* [out] */ ULONG32 *bufferUsed,
555 /* [size_is][out] */ BYTE *buffer) = 0;
556
557 virtual HRESULT STDMETHODCALLTYPE GetExceptionContextRecord(
558 /* [in] */ ULONG32 bufferSize,
559 /* [out] */ ULONG32 *bufferUsed,
560 /* [size_is][out] */ BYTE *buffer) = 0;
561
562 virtual HRESULT STDMETHODCALLTYPE GetExceptionThreadID(
563 /* [out] */ ULONG32 *threadID) = 0;
564
565 };
566
567
568#else /* C style interface */
569
570 typedef struct ICLRDataTarget3Vtbl
571 {
572 BEGIN_INTERFACE
573
574 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
575 ICLRDataTarget3 * This,
576 /* [in] */ REFIID riid,
577 /* [annotation][iid_is][out] */
578 _COM_Outptr_ void **ppvObject);
579
580 ULONG ( STDMETHODCALLTYPE *AddRef )(
581 ICLRDataTarget3 * This);
582
583 ULONG ( STDMETHODCALLTYPE *Release )(
584 ICLRDataTarget3 * This);
585
586 HRESULT ( STDMETHODCALLTYPE *GetMachineType )(
587 ICLRDataTarget3 * This,
588 /* [out] */ ULONG32 *machineType);
589
590 HRESULT ( STDMETHODCALLTYPE *GetPointerSize )(
591 ICLRDataTarget3 * This,
592 /* [out] */ ULONG32 *pointerSize);
593
594 HRESULT ( STDMETHODCALLTYPE *GetImageBase )(
595 ICLRDataTarget3 * This,
596 /* [string][in] */ LPCWSTR imagePath,
597 /* [out] */ CLRDATA_ADDRESS *baseAddress);
598
599 HRESULT ( STDMETHODCALLTYPE *ReadVirtual )(
600 ICLRDataTarget3 * This,
601 /* [in] */ CLRDATA_ADDRESS address,
602 /* [length_is][size_is][out] */ BYTE *buffer,
603 /* [in] */ ULONG32 bytesRequested,
604 /* [out] */ ULONG32 *bytesRead);
605
606 HRESULT ( STDMETHODCALLTYPE *WriteVirtual )(
607 ICLRDataTarget3 * This,
608 /* [in] */ CLRDATA_ADDRESS address,
609 /* [size_is][in] */ BYTE *buffer,
610 /* [in] */ ULONG32 bytesRequested,
611 /* [out] */ ULONG32 *bytesWritten);
612
613 HRESULT ( STDMETHODCALLTYPE *GetTLSValue )(
614 ICLRDataTarget3 * This,
615 /* [in] */ ULONG32 threadID,
616 /* [in] */ ULONG32 index,
617 /* [out] */ CLRDATA_ADDRESS *value);
618
619 HRESULT ( STDMETHODCALLTYPE *SetTLSValue )(
620 ICLRDataTarget3 * This,
621 /* [in] */ ULONG32 threadID,
622 /* [in] */ ULONG32 index,
623 /* [in] */ CLRDATA_ADDRESS value);
624
625 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
626 ICLRDataTarget3 * This,
627 /* [out] */ ULONG32 *threadID);
628
629 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
630 ICLRDataTarget3 * This,
631 /* [in] */ ULONG32 threadID,
632 /* [in] */ ULONG32 contextFlags,
633 /* [in] */ ULONG32 contextSize,
634 /* [size_is][out] */ BYTE *context);
635
636 HRESULT ( STDMETHODCALLTYPE *SetThreadContext )(
637 ICLRDataTarget3 * This,
638 /* [in] */ ULONG32 threadID,
639 /* [in] */ ULONG32 contextSize,
640 /* [size_is][in] */ BYTE *context);
641
642 HRESULT ( STDMETHODCALLTYPE *Request )(
643 ICLRDataTarget3 * This,
644 /* [in] */ ULONG32 reqCode,
645 /* [in] */ ULONG32 inBufferSize,
646 /* [size_is][in] */ BYTE *inBuffer,
647 /* [in] */ ULONG32 outBufferSize,
648 /* [size_is][out] */ BYTE *outBuffer);
649
650 HRESULT ( STDMETHODCALLTYPE *AllocVirtual )(
651 ICLRDataTarget3 * This,
652 /* [in] */ CLRDATA_ADDRESS addr,
653 /* [in] */ ULONG32 size,
654 /* [in] */ ULONG32 typeFlags,
655 /* [in] */ ULONG32 protectFlags,
656 /* [out] */ CLRDATA_ADDRESS *virt);
657
658 HRESULT ( STDMETHODCALLTYPE *FreeVirtual )(
659 ICLRDataTarget3 * This,
660 /* [in] */ CLRDATA_ADDRESS addr,
661 /* [in] */ ULONG32 size,
662 /* [in] */ ULONG32 typeFlags);
663
664 HRESULT ( STDMETHODCALLTYPE *GetExceptionRecord )(
665 ICLRDataTarget3 * This,
666 /* [in] */ ULONG32 bufferSize,
667 /* [out] */ ULONG32 *bufferUsed,
668 /* [size_is][out] */ BYTE *buffer);
669
670 HRESULT ( STDMETHODCALLTYPE *GetExceptionContextRecord )(
671 ICLRDataTarget3 * This,
672 /* [in] */ ULONG32 bufferSize,
673 /* [out] */ ULONG32 *bufferUsed,
674 /* [size_is][out] */ BYTE *buffer);
675
676 HRESULT ( STDMETHODCALLTYPE *GetExceptionThreadID )(
677 ICLRDataTarget3 * This,
678 /* [out] */ ULONG32 *threadID);
679
680 END_INTERFACE
681 } ICLRDataTarget3Vtbl;
682
683 interface ICLRDataTarget3
684 {
685 CONST_VTBL struct ICLRDataTarget3Vtbl *lpVtbl;
686 };
687
688
689
690#ifdef COBJMACROS
691
692
693#define ICLRDataTarget3_QueryInterface(This,riid,ppvObject) \
694 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
695
696#define ICLRDataTarget3_AddRef(This) \
697 ( (This)->lpVtbl -> AddRef(This) )
698
699#define ICLRDataTarget3_Release(This) \
700 ( (This)->lpVtbl -> Release(This) )
701
702
703#define ICLRDataTarget3_GetMachineType(This,machineType) \
704 ( (This)->lpVtbl -> GetMachineType(This,machineType) )
705
706#define ICLRDataTarget3_GetPointerSize(This,pointerSize) \
707 ( (This)->lpVtbl -> GetPointerSize(This,pointerSize) )
708
709#define ICLRDataTarget3_GetImageBase(This,imagePath,baseAddress) \
710 ( (This)->lpVtbl -> GetImageBase(This,imagePath,baseAddress) )
711
712#define ICLRDataTarget3_ReadVirtual(This,address,buffer,bytesRequested,bytesRead) \
713 ( (This)->lpVtbl -> ReadVirtual(This,address,buffer,bytesRequested,bytesRead) )
714
715#define ICLRDataTarget3_WriteVirtual(This,address,buffer,bytesRequested,bytesWritten) \
716 ( (This)->lpVtbl -> WriteVirtual(This,address,buffer,bytesRequested,bytesWritten) )
717
718#define ICLRDataTarget3_GetTLSValue(This,threadID,index,value) \
719 ( (This)->lpVtbl -> GetTLSValue(This,threadID,index,value) )
720
721#define ICLRDataTarget3_SetTLSValue(This,threadID,index,value) \
722 ( (This)->lpVtbl -> SetTLSValue(This,threadID,index,value) )
723
724#define ICLRDataTarget3_GetCurrentThreadID(This,threadID) \
725 ( (This)->lpVtbl -> GetCurrentThreadID(This,threadID) )
726
727#define ICLRDataTarget3_GetThreadContext(This,threadID,contextFlags,contextSize,context) \
728 ( (This)->lpVtbl -> GetThreadContext(This,threadID,contextFlags,contextSize,context) )
729
730#define ICLRDataTarget3_SetThreadContext(This,threadID,contextSize,context) \
731 ( (This)->lpVtbl -> SetThreadContext(This,threadID,contextSize,context) )
732
733#define ICLRDataTarget3_Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) \
734 ( (This)->lpVtbl -> Request(This,reqCode,inBufferSize,inBuffer,outBufferSize,outBuffer) )
735
736
737#define ICLRDataTarget3_AllocVirtual(This,addr,size,typeFlags,protectFlags,virt) \
738 ( (This)->lpVtbl -> AllocVirtual(This,addr,size,typeFlags,protectFlags,virt) )
739
740#define ICLRDataTarget3_FreeVirtual(This,addr,size,typeFlags) \
741 ( (This)->lpVtbl -> FreeVirtual(This,addr,size,typeFlags) )
742
743
744#define ICLRDataTarget3_GetExceptionRecord(This,bufferSize,bufferUsed,buffer) \
745 ( (This)->lpVtbl -> GetExceptionRecord(This,bufferSize,bufferUsed,buffer) )
746
747#define ICLRDataTarget3_GetExceptionContextRecord(This,bufferSize,bufferUsed,buffer) \
748 ( (This)->lpVtbl -> GetExceptionContextRecord(This,bufferSize,bufferUsed,buffer) )
749
750#define ICLRDataTarget3_GetExceptionThreadID(This,threadID) \
751 ( (This)->lpVtbl -> GetExceptionThreadID(This,threadID) )
752
753#endif /* COBJMACROS */
754
755
756#endif /* C style interface */
757
758
759
760
761#endif /* __ICLRDataTarget3_INTERFACE_DEFINED__ */
762
763
764#ifndef __ICLRMetadataLocator_INTERFACE_DEFINED__
765#define __ICLRMetadataLocator_INTERFACE_DEFINED__
766
767/* interface ICLRMetadataLocator */
768/* [unique][uuid][local][object] */
769
770
771EXTERN_C const IID IID_ICLRMetadataLocator;
772
773#if defined(__cplusplus) && !defined(CINTERFACE)
774
775 MIDL_INTERFACE("aa8fa804-bc05-4642-b2c5-c353ed22fc63")
776 ICLRMetadataLocator : public IUnknown
777 {
778 public:
779 virtual HRESULT STDMETHODCALLTYPE GetMetadata(
780 /* [in] */ LPCWSTR imagePath,
781 /* [in] */ ULONG32 imageTimestamp,
782 /* [in] */ ULONG32 imageSize,
783 /* [in] */ GUID *mvid,
784 /* [in] */ ULONG32 mdRva,
785 /* [in] */ ULONG32 flags,
786 /* [in] */ ULONG32 bufferSize,
787 /* [length_is][size_is][out] */ BYTE *buffer,
788 /* [out] */ ULONG32 *dataSize) = 0;
789
790 };
791
792
793#else /* C style interface */
794
795 typedef struct ICLRMetadataLocatorVtbl
796 {
797 BEGIN_INTERFACE
798
799 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
800 ICLRMetadataLocator * This,
801 /* [in] */ REFIID riid,
802 /* [annotation][iid_is][out] */
803 _COM_Outptr_ void **ppvObject);
804
805 ULONG ( STDMETHODCALLTYPE *AddRef )(
806 ICLRMetadataLocator * This);
807
808 ULONG ( STDMETHODCALLTYPE *Release )(
809 ICLRMetadataLocator * This);
810
811 HRESULT ( STDMETHODCALLTYPE *GetMetadata )(
812 ICLRMetadataLocator * This,
813 /* [in] */ LPCWSTR imagePath,
814 /* [in] */ ULONG32 imageTimestamp,
815 /* [in] */ ULONG32 imageSize,
816 /* [in] */ GUID *mvid,
817 /* [in] */ ULONG32 mdRva,
818 /* [in] */ ULONG32 flags,
819 /* [in] */ ULONG32 bufferSize,
820 /* [length_is][size_is][out] */ BYTE *buffer,
821 /* [out] */ ULONG32 *dataSize);
822
823 END_INTERFACE
824 } ICLRMetadataLocatorVtbl;
825
826 interface ICLRMetadataLocator
827 {
828 CONST_VTBL struct ICLRMetadataLocatorVtbl *lpVtbl;
829 };
830
831
832
833#ifdef COBJMACROS
834
835
836#define ICLRMetadataLocator_QueryInterface(This,riid,ppvObject) \
837 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
838
839#define ICLRMetadataLocator_AddRef(This) \
840 ( (This)->lpVtbl -> AddRef(This) )
841
842#define ICLRMetadataLocator_Release(This) \
843 ( (This)->lpVtbl -> Release(This) )
844
845
846#define ICLRMetadataLocator_GetMetadata(This,imagePath,imageTimestamp,imageSize,mvid,mdRva,flags,bufferSize,buffer,dataSize) \
847 ( (This)->lpVtbl -> GetMetadata(This,imagePath,imageTimestamp,imageSize,mvid,mdRva,flags,bufferSize,buffer,dataSize) )
848
849#endif /* COBJMACROS */
850
851
852#endif /* C style interface */
853
854
855
856
857#endif /* __ICLRMetadataLocator_INTERFACE_DEFINED__ */
858
859
860#ifndef __ICLRDataEnumMemoryRegionsCallback_INTERFACE_DEFINED__
861#define __ICLRDataEnumMemoryRegionsCallback_INTERFACE_DEFINED__
862
863/* interface ICLRDataEnumMemoryRegionsCallback */
864/* [uuid][local][object] */
865
866
867EXTERN_C const IID IID_ICLRDataEnumMemoryRegionsCallback;
868
869#if defined(__cplusplus) && !defined(CINTERFACE)
870
871 MIDL_INTERFACE("BCDD6908-BA2D-4ec5-96CF-DF4D5CDCB4A4")
872 ICLRDataEnumMemoryRegionsCallback : public IUnknown
873 {
874 public:
875 virtual HRESULT STDMETHODCALLTYPE EnumMemoryRegion(
876 /* [in] */ CLRDATA_ADDRESS address,
877 /* [in] */ ULONG32 size) = 0;
878
879 };
880
881
882#else /* C style interface */
883
884 typedef struct ICLRDataEnumMemoryRegionsCallbackVtbl
885 {
886 BEGIN_INTERFACE
887
888 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
889 ICLRDataEnumMemoryRegionsCallback * This,
890 /* [in] */ REFIID riid,
891 /* [annotation][iid_is][out] */
892 _COM_Outptr_ void **ppvObject);
893
894 ULONG ( STDMETHODCALLTYPE *AddRef )(
895 ICLRDataEnumMemoryRegionsCallback * This);
896
897 ULONG ( STDMETHODCALLTYPE *Release )(
898 ICLRDataEnumMemoryRegionsCallback * This);
899
900 HRESULT ( STDMETHODCALLTYPE *EnumMemoryRegion )(
901 ICLRDataEnumMemoryRegionsCallback * This,
902 /* [in] */ CLRDATA_ADDRESS address,
903 /* [in] */ ULONG32 size);
904
905 END_INTERFACE
906 } ICLRDataEnumMemoryRegionsCallbackVtbl;
907
908 interface ICLRDataEnumMemoryRegionsCallback
909 {
910 CONST_VTBL struct ICLRDataEnumMemoryRegionsCallbackVtbl *lpVtbl;
911 };
912
913
914
915#ifdef COBJMACROS
916
917
918#define ICLRDataEnumMemoryRegionsCallback_QueryInterface(This,riid,ppvObject) \
919 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
920
921#define ICLRDataEnumMemoryRegionsCallback_AddRef(This) \
922 ( (This)->lpVtbl -> AddRef(This) )
923
924#define ICLRDataEnumMemoryRegionsCallback_Release(This) \
925 ( (This)->lpVtbl -> Release(This) )
926
927
928#define ICLRDataEnumMemoryRegionsCallback_EnumMemoryRegion(This,address,size) \
929 ( (This)->lpVtbl -> EnumMemoryRegion(This,address,size) )
930
931#endif /* COBJMACROS */
932
933
934#endif /* C style interface */
935
936
937
938
939#endif /* __ICLRDataEnumMemoryRegionsCallback_INTERFACE_DEFINED__ */
940
941
942#ifndef __ICLRDataEnumMemoryRegionsCallback2_INTERFACE_DEFINED__
943#define __ICLRDataEnumMemoryRegionsCallback2_INTERFACE_DEFINED__
944
945/* interface ICLRDataEnumMemoryRegionsCallback2 */
946/* [uuid][local][object] */
947
948
949EXTERN_C const IID IID_ICLRDataEnumMemoryRegionsCallback2;
950
951#if defined(__cplusplus) && !defined(CINTERFACE)
952
953 MIDL_INTERFACE("3721A26F-8B91-4D98-A388-DB17B356FADB")
954 ICLRDataEnumMemoryRegionsCallback2 : public ICLRDataEnumMemoryRegionsCallback
955 {
956 public:
957 virtual HRESULT STDMETHODCALLTYPE UpdateMemoryRegion(
958 /* [in] */ CLRDATA_ADDRESS address,
959 /* [in] */ ULONG32 bufferSize,
960 /* [size_is][in] */ BYTE *buffer) = 0;
961
962 };
963
964
965#else /* C style interface */
966
967 typedef struct ICLRDataEnumMemoryRegionsCallback2Vtbl
968 {
969 BEGIN_INTERFACE
970
971 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
972 ICLRDataEnumMemoryRegionsCallback2 * This,
973 /* [in] */ REFIID riid,
974 /* [annotation][iid_is][out] */
975 _COM_Outptr_ void **ppvObject);
976
977 ULONG ( STDMETHODCALLTYPE *AddRef )(
978 ICLRDataEnumMemoryRegionsCallback2 * This);
979
980 ULONG ( STDMETHODCALLTYPE *Release )(
981 ICLRDataEnumMemoryRegionsCallback2 * This);
982
983 HRESULT ( STDMETHODCALLTYPE *EnumMemoryRegion )(
984 ICLRDataEnumMemoryRegionsCallback2 * This,
985 /* [in] */ CLRDATA_ADDRESS address,
986 /* [in] */ ULONG32 size);
987
988 HRESULT ( STDMETHODCALLTYPE *UpdateMemoryRegion )(
989 ICLRDataEnumMemoryRegionsCallback2 * This,
990 /* [in] */ CLRDATA_ADDRESS address,
991 /* [in] */ ULONG32 bufferSize,
992 /* [size_is][in] */ BYTE *buffer);
993
994 END_INTERFACE
995 } ICLRDataEnumMemoryRegionsCallback2Vtbl;
996
997 interface ICLRDataEnumMemoryRegionsCallback2
998 {
999 CONST_VTBL struct ICLRDataEnumMemoryRegionsCallback2Vtbl *lpVtbl;
1000 };
1001
1002
1003
1004#ifdef COBJMACROS
1005
1006
1007#define ICLRDataEnumMemoryRegionsCallback2_QueryInterface(This,riid,ppvObject) \
1008 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1009
1010#define ICLRDataEnumMemoryRegionsCallback2_AddRef(This) \
1011 ( (This)->lpVtbl -> AddRef(This) )
1012
1013#define ICLRDataEnumMemoryRegionsCallback2_Release(This) \
1014 ( (This)->lpVtbl -> Release(This) )
1015
1016
1017#define ICLRDataEnumMemoryRegionsCallback2_EnumMemoryRegion(This,address,size) \
1018 ( (This)->lpVtbl -> EnumMemoryRegion(This,address,size) )
1019
1020
1021#define ICLRDataEnumMemoryRegionsCallback2_UpdateMemoryRegion(This,address,bufferSize,buffer) \
1022 ( (This)->lpVtbl -> UpdateMemoryRegion(This,address,bufferSize,buffer) )
1023
1024#endif /* COBJMACROS */
1025
1026
1027#endif /* C style interface */
1028
1029
1030
1031
1032#endif /* __ICLRDataEnumMemoryRegionsCallback2_INTERFACE_DEFINED__ */
1033
1034
1035/* interface __MIDL_itf_clrdata_0000_0006 */
1036/* [local] */
1037
1038typedef
1039enum CLRDataEnumMemoryFlags
1040 {
1041 CLRDATA_ENUM_MEM_DEFAULT = 0,
1042 CLRDATA_ENUM_MEM_MINI = CLRDATA_ENUM_MEM_DEFAULT,
1043 CLRDATA_ENUM_MEM_HEAP = 0x1,
1044 CLRDATA_ENUM_MEM_TRIAGE = 0x2
1045 } CLRDataEnumMemoryFlags;
1046
1047
1048
1049extern RPC_IF_HANDLE __MIDL_itf_clrdata_0000_0006_v0_0_c_ifspec;
1050extern RPC_IF_HANDLE __MIDL_itf_clrdata_0000_0006_v0_0_s_ifspec;
1051
1052#ifndef __ICLRDataEnumMemoryRegions_INTERFACE_DEFINED__
1053#define __ICLRDataEnumMemoryRegions_INTERFACE_DEFINED__
1054
1055/* interface ICLRDataEnumMemoryRegions */
1056/* [uuid][local][object] */
1057
1058
1059EXTERN_C const IID IID_ICLRDataEnumMemoryRegions;
1060
1061#if defined(__cplusplus) && !defined(CINTERFACE)
1062
1063 MIDL_INTERFACE("471c35b4-7c2f-4ef0-a945-00f8c38056f1")
1064 ICLRDataEnumMemoryRegions : public IUnknown
1065 {
1066 public:
1067 virtual HRESULT STDMETHODCALLTYPE EnumMemoryRegions(
1068 /* [in] */ ICLRDataEnumMemoryRegionsCallback *callback,
1069 /* [in] */ ULONG32 miniDumpFlags,
1070 /* [in] */ CLRDataEnumMemoryFlags clrFlags) = 0;
1071
1072 };
1073
1074
1075#else /* C style interface */
1076
1077 typedef struct ICLRDataEnumMemoryRegionsVtbl
1078 {
1079 BEGIN_INTERFACE
1080
1081 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1082 ICLRDataEnumMemoryRegions * This,
1083 /* [in] */ REFIID riid,
1084 /* [annotation][iid_is][out] */
1085 _COM_Outptr_ void **ppvObject);
1086
1087 ULONG ( STDMETHODCALLTYPE *AddRef )(
1088 ICLRDataEnumMemoryRegions * This);
1089
1090 ULONG ( STDMETHODCALLTYPE *Release )(
1091 ICLRDataEnumMemoryRegions * This);
1092
1093 HRESULT ( STDMETHODCALLTYPE *EnumMemoryRegions )(
1094 ICLRDataEnumMemoryRegions * This,
1095 /* [in] */ ICLRDataEnumMemoryRegionsCallback *callback,
1096 /* [in] */ ULONG32 miniDumpFlags,
1097 /* [in] */ CLRDataEnumMemoryFlags clrFlags);
1098
1099 END_INTERFACE
1100 } ICLRDataEnumMemoryRegionsVtbl;
1101
1102 interface ICLRDataEnumMemoryRegions
1103 {
1104 CONST_VTBL struct ICLRDataEnumMemoryRegionsVtbl *lpVtbl;
1105 };
1106
1107
1108
1109#ifdef COBJMACROS
1110
1111
1112#define ICLRDataEnumMemoryRegions_QueryInterface(This,riid,ppvObject) \
1113 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1114
1115#define ICLRDataEnumMemoryRegions_AddRef(This) \
1116 ( (This)->lpVtbl -> AddRef(This) )
1117
1118#define ICLRDataEnumMemoryRegions_Release(This) \
1119 ( (This)->lpVtbl -> Release(This) )
1120
1121
1122#define ICLRDataEnumMemoryRegions_EnumMemoryRegions(This,callback,miniDumpFlags,clrFlags) \
1123 ( (This)->lpVtbl -> EnumMemoryRegions(This,callback,miniDumpFlags,clrFlags) )
1124
1125#endif /* COBJMACROS */
1126
1127
1128#endif /* C style interface */
1129
1130
1131
1132
1133#endif /* __ICLRDataEnumMemoryRegions_INTERFACE_DEFINED__ */
1134
1135
1136/* Additional Prototypes for ALL interfaces */
1137
1138/* end of Additional Prototypes */
1139
1140#ifdef __cplusplus
1141}
1142#endif
1143
1144#endif
1145
1146
1147