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
use winapi::shared::ntdef::{BOOLEAN, NTSTATUS, PSTR, PVOID, ULONG};
use winapi::um::winnt::{PCONTEXT, PEXCEPTION_RECORD};
EXTERN!{extern "system" {
    fn RtlDispatchException(
        ExceptionRecord: PEXCEPTION_RECORD,
        ContextRecord: PCONTEXT,
    ) -> BOOLEAN;
    fn RtlRaiseStatus(
        Status: NTSTATUS,
    );
    fn RtlRaiseException(
        ExceptionRecord: PEXCEPTION_RECORD,
    );
    fn NtContinue(
        ContextRecord: PCONTEXT,
        TestAlert: BOOLEAN,
    ) -> NTSTATUS;
    fn NtRaiseException(
        ExceptionRecord: PEXCEPTION_RECORD,
        ContextRecord: PCONTEXT,
        FirstChance: BOOLEAN,
    ) -> NTSTATUS;
    fn RtlAssert(
        VoidFailedAssertion: PVOID,
        VoidFileName: PVOID,
        LineNumber: ULONG,
        MutableMessage: PSTR,
    );
}}