#include <ntoskrnl.h>
#include <debug.h>
Go to the source code of this file.
|
VOID NTAPI | KdpGetStateChange (IN PDBGKD_MANIPULATE_STATE64 State, IN PCONTEXT Context) |
|
VOID NTAPI | KdpSetContextState (IN PDBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange, IN PCONTEXT Context) |
|
NTSTATUS NTAPI | KdpSysReadMsr (IN ULONG Msr, OUT PLARGE_INTEGER MsrValue) |
|
NTSTATUS NTAPI | KdpSysWriteMsr (IN ULONG Msr, IN PLARGE_INTEGER MsrValue) |
|
NTSTATUS NTAPI | KdpSysReadBusData (IN ULONG BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN ULONG Offset, IN PVOID Buffer, IN ULONG Length, OUT PULONG ActualLength) |
|
NTSTATUS NTAPI | KdpSysWriteBusData (IN ULONG BusDataType, IN ULONG BusNumber, IN ULONG SlotNumber, IN ULONG Offset, IN PVOID Buffer, IN ULONG Length, OUT PULONG ActualLength) |
|
NTSTATUS NTAPI | KdpSysReadControlSpace (IN ULONG Processor, IN ULONG64 BaseAddress, IN PVOID Buffer, IN ULONG Length, OUT PULONG ActualLength) |
|
NTSTATUS NTAPI | KdpSysWriteControlSpace (IN ULONG Processor, IN ULONG64 BaseAddress, IN PVOID Buffer, IN ULONG Length, OUT PULONG ActualLength) |
|
NTSTATUS NTAPI | KdpSysReadIoSpace (IN ULONG InterfaceType, IN ULONG BusNumber, IN ULONG AddressSpace, IN ULONG64 IoAddress, OUT PVOID DataValue, IN ULONG DataSize, OUT PULONG ActualDataSize) |
|
NTSTATUS NTAPI | KdpSysWriteIoSpace (IN ULONG InterfaceType, IN ULONG BusNumber, IN ULONG AddressSpace, IN ULONG64 IoAddress, IN PVOID DataValue, IN ULONG DataSize, OUT PULONG ActualDataSize) |
|
NTSTATUS NTAPI | KdpSysCheckLowMemory (IN ULONG Flags) |
|
NTSTATUS NTAPI | KdpAllowDisable (VOID) |
|
◆ NDEBUG
◆ UNIMPLEMENTED
◆ KdpAllowDisable()
Definition at line 364 of file kdx64.c.
365{
368}
#define UNIMPLEMENTED_DBGBREAK(...)
#define STATUS_ACCESS_DENIED
◆ KdpGetStateChange()
Definition at line 22 of file kdx64.c.
24{
27
28
30 {
31
32 if (
State->u.Continue2.ControlSet.TraceFlag)
33 {
34
36 }
37 else
38 {
39
41 }
42
43
45 {
46
49 State->u.Continue2.ControlSet.Dr7;
51 }
52
53
54 if (
State->u.Continue2.ControlSet.CurrentSymbolStart != 1)
55 {
56
58 State->u.Continue2.ControlSet.CurrentSymbolStart;
60 }
61 }
62}
#define NT_SUCCESS(StatCode)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
ULONG_PTR KdpCurrentSymbolEnd
ULONG_PTR KdpCurrentSymbolStart
PKPRCB KiProcessorBlock[]
KPROCESSOR_STATE ProcessorState
KSPECIAL_REGISTERS SpecialRegisters
◆ KdpSetContextState()
Definition at line 66 of file kdx64.c.
68{
70
71
73 KernelDr6;
75 KernelDr7;
76
77
78 WaitStateChange->ControlReport.SegCs = (
USHORT)
Context->SegCs;
79 WaitStateChange->ControlReport.SegDs = (
USHORT)
Context->SegDs;
80 WaitStateChange->ControlReport.SegEs = (
USHORT)
Context->SegEs;
81 WaitStateChange->ControlReport.SegFs = (
USHORT)
Context->SegFs;
82
83
84 WaitStateChange->ControlReport.EFlags =
Context->EFlags;
85
86
89 {
91 }
92}
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
#define REPORT_INCLUDES_SEGS
#define REPORT_STANDARD_CS
◆ KdpSysCheckLowMemory()
Definition at line 356 of file kdx64.c.
357{
360}
#define STATUS_UNSUCCESSFUL
◆ KdpSysReadBusData()
◆ KdpSysReadControlSpace()
Definition at line 162 of file kdx64.c.
167{
171
173 {
175
176 ControlStart = &Pcr;
177 *ActualLength =
sizeof(
PVOID);
178 break;
179
181
182 ControlStart = &Prcb;
183 *ActualLength =
sizeof(
PVOID);
184 break;
185
187
190 break;
191
193
195 *ActualLength =
sizeof(
PVOID);
196 break;
197
198 default:
199 *ActualLength = 0;
202 }
203
204
206
207
209}
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
_In_ ULONG _In_ ULONG _In_ ULONG Length
struct _KTHREAD * CurrentThread
#define RtlCopyMemory(Destination, Source, Length)
#define CONTAINING_RECORD(address, type, field)
#define AMD64_DEBUG_CONTROL_SPACE_KPRCB
#define AMD64_DEBUG_CONTROL_SPACE_KSPECIAL
#define AMD64_DEBUG_CONTROL_SPACE_KPCR
#define AMD64_DEBUG_CONTROL_SPACE_KTHREAD
◆ KdpSysReadIoSpace()
Definition at line 244 of file kdx64.c.
251{
252
254 {
255
256 *ActualDataSize = 0;
258 }
259
260
262 {
263
264 *ActualDataSize = 0;
266 }
267
269 {
271
273 break;
274
276
278 break;
279
281
283 break;
284
285 default:
286
287 *ActualDataSize = 0;
289 }
290
291
293
294
296}
ULONG NTAPI READ_PORT_ULONG(IN PULONG Port)
USHORT NTAPI READ_PORT_USHORT(IN PUSHORT Port)
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
#define STATUS_DATATYPE_MISALIGNMENT
#define READ_PORT_UCHAR(p)
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
◆ KdpSysReadMsr()
Definition at line 96 of file kdx64.c.
98{
99
101 {
103 }
105 {
107 }
109
111}
#define EXCEPTION_EXECUTE_HANDLER
PPC_QUAL unsigned long long __readmsr()
#define _SEH2_EXCEPT(...)
#define _SEH2_YIELD(__stmt)
#define STATUS_NO_SUCH_DEVICE
◆ KdpSysWriteBusData()
◆ KdpSysWriteControlSpace()
Definition at line 213 of file kdx64.c.
218{
221
223 {
225
228 break;
229
230 default:
231 *ActualLength = 0;
234 }
235
236
238
240}
◆ KdpSysWriteIoSpace()
Definition at line 300 of file kdx64.c.
307{
308
310 {
311
312 *ActualDataSize = 0;
314 }
315
316
318 {
319
320 *ActualDataSize = 0;
322 }
323
325 {
327
329 break;
330
332
334 break;
335
337
339 break;
340
341 default:
342
343 *ActualDataSize = 0;
345 }
346
347
349
350
352}
VOID NTAPI WRITE_PORT_USHORT(IN PUSHORT Port, IN USHORT Value)
VOID NTAPI WRITE_PORT_ULONG(IN PULONG Port, IN ULONG Value)
#define WRITE_PORT_UCHAR(p, d)
◆ KdpSysWriteMsr()
Definition at line 115 of file kdx64.c.
117{
118
120 {
122 }
124 {
126 }
128
130}
PPC_QUAL void __writemsr(const unsigned long Value)