-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathIDebugDataSpaces3.cs
More file actions
235 lines (199 loc) · 6.02 KB
/
Copy pathIDebugDataSpaces3.cs
File metadata and controls
235 lines (199 loc) · 6.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System;
using System.Runtime.InteropServices;
#pragma warning disable 1591
namespace Microsoft.Diagnostics.Runtime.Interop
{
[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("23f79d6c-8aaf-4f7c-a607-9995f5407e63")]
public interface IDebugDataSpaces3 : IDebugDataSpaces2
{
/* IDebugDataSpaces */
[PreserveSig]
new int ReadVirtual(
[In] ulong Offset,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesRead);
[PreserveSig]
new int WriteVirtual(
[In] ulong Offset,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesWritten);
[PreserveSig]
new int SearchVirtual(
[In] ulong Offset,
[In] ulong Length,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] pattern,
[In] uint PatternSize,
[In] uint PatternGranularity,
[Out] out ulong MatchOffset);
[PreserveSig]
new int ReadVirtualUncached(
[In] ulong Offset,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesRead);
[PreserveSig]
new int WriteVirtualUncached(
[In] ulong Offset,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesWritten);
[PreserveSig]
new int ReadPointersVirtual(
[In] uint Count,
[In] ulong Offset,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] ulong[] Ptrs);
[PreserveSig]
new int WritePointersVirtual(
[In] uint Count,
[In] ulong Offset,
[In, MarshalAs(UnmanagedType.LPArray)] ulong[] Ptrs);
[PreserveSig]
new int ReadPhysical(
[In] ulong Offset,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesRead);
[PreserveSig]
new int WritePhysical(
[In] ulong Offset,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesWritten);
[PreserveSig]
new int ReadControl(
[In] uint Processor,
[In] ulong Offset,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] buffer,
[In] int BufferSize,
[Out] out uint BytesRead);
[PreserveSig]
new int WriteControl(
[In] uint Processor,
[In] ulong Offset,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] buffer,
[In] int BufferSize,
[Out] out uint BytesWritten);
[PreserveSig]
new int ReadIo(
[In] INTERFACE_TYPE InterfaceType,
[In] uint BusNumber,
[In] uint AddressSpace,
[In] ulong Offset,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesRead);
[PreserveSig]
new int WriteIo(
[In] INTERFACE_TYPE InterfaceType,
[In] uint BusNumber,
[In] uint AddressSpace,
[In] ulong Offset,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesWritten);
[PreserveSig]
new int ReadMsr(
[In] uint Msr,
[Out] out ulong MsrValue);
[PreserveSig]
new int WriteMsr(
[In] uint Msr,
[In] ulong MsrValue);
[PreserveSig]
new int ReadBusData(
[In] BUS_DATA_TYPE BusDataType,
[In] uint BusNumber,
[In] uint SlotNumber,
[In] uint Offset,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesRead);
[PreserveSig]
new int WriteBusData(
[In] BUS_DATA_TYPE BusDataType,
[In] uint BusNumber,
[In] uint SlotNumber,
[In] uint Offset,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 5)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint BytesWritten);
[PreserveSig]
new int CheckLowMemory();
[PreserveSig]
new int ReadDebuggerData(
[In] uint Index,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint DataSize);
[PreserveSig]
new int ReadProcessorSystemData(
[In] uint Processor,
[In] DEBUG_DATA Index,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint DataSize);
/* IDebugDataSpaces2 */
[PreserveSig]
new int VirtualToPhysical(
[In] ulong Virtual,
[Out] out ulong Physical);
[PreserveSig]
new int GetVirtualTranslationPhysicalOffsets(
[In] ulong Virtual,
[Out, MarshalAs(UnmanagedType.LPArray)] ulong[] Offsets,
[In] uint OffsetsSize,
[Out] out uint Levels);
[PreserveSig]
new int ReadHandleData(
[In] ulong Handle,
[In] DEBUG_HANDLE_DATA_TYPE DataType,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint DataSize);
[PreserveSig]
new int FillVirtual(
[In] ulong Start,
[In] uint Size,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] buffer,
[In] uint PatternSize,
[Out] out uint Filled);
[PreserveSig]
new int FillPhysical(
[In] ulong Start,
[In] uint Size,
[In, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] buffer,
[In] uint PatternSize,
[Out] out uint Filled);
[PreserveSig]
new int QueryVirtual(
[In] ulong Offset,
[Out] out MEMORY_BASIC_INFORMATION64 Info);
/* IDebugDataSpaces3 */
[PreserveSig]
int ReadImageNtHeaders(
[In] ulong ImageBase,
[Out] out IMAGE_NT_HEADERS64 Headers);
[PreserveSig]
int ReadTagged(
[In, MarshalAs(UnmanagedType.LPStruct)] Guid Tag,
[In] uint Offset,
[Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 3)] byte[] buffer,
[In] uint BufferSize,
[Out] out uint TotalSize);
[PreserveSig]
int StartEnumTagged(
[Out] out ulong Handle);
[PreserveSig]
int GetNextTagged(
[In] ulong Handle,
[Out] out Guid Tag,
[Out] out uint Size);
[PreserveSig]
int EndEnumTagged(
[In] ulong Handle);
}
}