summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/ntkdexts.h
blob: 1a786a12e2ce375a173b9f0fd9913c25d797d75d (plain) (blame)
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_