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
|
//! Debugger support.
use ::status::NTSTATUS;
extern "C"
{
/// `DbgPrint` routine sends a message to the kernel debugger.
pub fn DbgPrint(Format: *const u8, ...) -> NTSTATUS;
/// The `DbgPrintEx` routine sends a string to the kernel debugger if certain conditions are met.
pub fn DbgPrintEx(ComponentId: u32, Level: u32, Format: *const u8, ...) -> NTSTATUS;
}
extern "system"
{
/// Breaks into the kernel debugger.
pub fn DbgBreakPoint();
/// Breaks into the kernel debugger and sends the value of `Status` to the debugger.
pub fn DbgBreakPointWithStatus(Status: NTSTATUS);
}
/// `DbgPrintEx` Message severity.
#[repr(C)]
pub enum DPFLTR_LEVEL {
ERROR = 0,
WARNING,
TRACE,
INFO,
}
/// `DbgPrintEx` Component name.
#[repr(C)]
pub enum DPFLTR_ID {
SYSTEM = 0,
SMSS,
SETUP,
NTFS,
// ...
IHVDRIVER = 77,
IHVVIDEO,
IHVAUDIO,
IHVNETWORK,
IHVSTREAMING,
IHVBUS,
DEFAULT = 99,
}
|