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
|
/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1990 Microsoft Corporation
Module Name:
ntkdexts.h
Abstract:
This file contains procedure prototypes and structures
needed to write KD kernel debugger extensions.
Author:
John Vert (jvert) 28-Jul-1992
Environment:
runs in the Win32 KD debug environment.
Revision History:
--*/
#ifndef _NTKDEXTNS_
#define _NTKDEXTNS_
typedef
VOID
(*PNTKD_OUTPUT_ROUTINE)(
char *,
...
);
typedef
DWORD
(*PNTKD_GET_EXPRESSION)(
char *
);
typedef
VOID
(*PNTKD_GET_SYMBOL)(
LPVOID offset,
PUCHAR pchBuffer,
LPDWORD pDisplacement
);
typedef
DWORD
(*PNTKD_DISASM)(
LPDWORD lpOffset,
LPSTR lpBuffer,
BOOL fShowEfeectiveAddress
);
typedef
BOOL
(*PNTKD_CHECK_CONTROL_C)(
VOID
);
typedef
BOOL
(*PNTKD_READ_VIRTUAL_MEMORY)(
LPVOID address,
LPVOID buffer,
ULONG count,
PULONG bytesread
);
typedef
BOOL
(*PNTKD_WRITE_VIRTUAL_MEMORY)(
LPVOID address,
LPVOID buffer,
ULONG count,
PULONG byteswritten
);
typedef
BOOL
(*PNTKD_READ_PHYSICAL_MEMORY)(
PHYSICAL_ADDRESS address,
LPVOID buffer,
ULONG count,
PULONG bytesread
);
typedef
BOOL
(*PNTKD_WRITE_PHYSICAL_MEMORY)(
PHYSICAL_ADDRESS address,
LPVOID buffer,
ULONG length,
PULONG byteswritten
);
typedef struct _NTKD_EXTENSION_APIS {
DWORD nSize;
PNTKD_OUTPUT_ROUTINE lpOutputRoutine;
PNTKD_GET_EXPRESSION lpGetExpressionRoutine;
PNTKD_GET_SYMBOL lpGetSymbolRoutine;
PNTKD_DISASM lpDisasmRoutine;
PNTKD_CHECK_CONTROL_C lpCheckControlCRoutine;
PNTKD_READ_VIRTUAL_MEMORY lpReadVirtualMemRoutine;
PNTKD_WRITE_VIRTUAL_MEMORY lpWriteVirtualMemRoutine;
PNTKD_READ_PHYSICAL_MEMORY lpReadPhysicalMemRoutine;
PNTKD_WRITE_PHYSICAL_MEMORY lpWritePhysicalMemRoutine;
} NTKD_EXTENSION_APIS, *PNTKD_EXTENSION_APIS;
typedef
VOID
(*PNTKD_EXTENSION_ROUTINE)(
DWORD dwCurrentPc,
PNTKD_EXTENSION_APIS lpExtensionApis,
LPSTR lpArgumentString
);
#endif // _NTKDEXTNS_
|