reactos/ntoskrnl/ke
Hermès Bélusca-Maïto f694d12f0c
[NTOS:KE/MM] Some bug-fixes in the bugcheck code.
- Introduce the MmMakeKernelResourceSectionWritable() helper for
  making the kernel resource memory section writable, and use it
  in KeGetBugMessageText(). Indeed, this latter function patches
  in place the bugcheck resource message to trim any trailing
  newlines before displaying the message on screen.

  See also https://github.com/osresearch/uxen/blob/83bad53/dm/introspection-win7.c#L286
  that mentions it too.

  This fixes bugcheck text display (e.g. the MANUALLY_INITIATED_CRASH one)
  when using (at least) MSVC-built ReactOS, avoiding a Page-Fault
  exception during the bugcheck.

- Cover KeGetBugMessageText() in SEH since we are accessing kernel
  resources that could also be corrupted in bugcheck scenarii, and we
  don't want to further bugcheck.

- Fix newline trimming loop.

- KiDoBugCheckCallbacks():
  * Wrap the bugcheck CallbackRoutine call in SEH.
  * Add a FIXME concerning the need of further memory validation of CurrentRecord.

- Add a FIXME concerning the need to run the bugcheck-reason callbacks
  with the KbCallbackReserved1 reason, in KeBugCheckWithTf().
  Mentioned in http://blog.ptsecurity.com/2012/06/customizing-blue-screen-of-death.html
2019-06-25 21:01:49 +02:00
..
amd64
arm
i386 [NTOS:KE] Use multi-processor-aware KeGetPcr() instead of the legacy PCR. 2019-06-20 19:39:49 +02:00
powerpc
apc.c
balmgr.c
bug.c [NTOS:KE/MM] Some bug-fixes in the bugcheck code. 2019-06-25 21:01:49 +02:00
clock.c
config.c
devqueue.c
dpc.c
eventobj.c
except.c
freeze.c
gate.c
gmutex.c
ipi.c
krnlinit.c
mutex.c
procobj.c
profobj.c
queue.c
semphobj.c
spinlock.c
thrdobj.c
thrdschd.c
time.c
timerobj.c
wait.c