https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f5e86c0fd3488a3c38fe5…
commit f5e86c0fd3488a3c38fe53e5568a8c00784f1ed5
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Oct 27 01:19:11 2019 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Fri Nov 1 19:09:29 2019 +0100
[NTOS] Just go ahead and allow printing all the printable ASCII characters in
ExpTagAllowPrint().
As documented in
https://docs.microsoft.com/fr-fr/windows-hardware/drivers/ddi/wdm/nf-wdm-ex…
pool tag "characters" must be a value in the range 0x20 (space) to 0x7E
(tilde),
which happen indeed to be the range of printable (non-extended) ASCII characters.
(The display problem was originally caught while attempting to display
the pool tag 0x3a306847 corresponding to 'Gh0:', a win32ss GDIOBJ pool tag
encoded with macro GDIOBJ_POOL_TAG().)
---
ntoskrnl/mm/ARM3/expool.c | 26 +++++++++-----------------
1 file changed, 9 insertions(+), 17 deletions(-)
diff --git a/ntoskrnl/mm/ARM3/expool.c b/ntoskrnl/mm/ARM3/expool.c
index 416a2fbda78..bccb0e9bbdd 100644
--- a/ntoskrnl/mm/ARM3/expool.c
+++ b/ntoskrnl/mm/ARM3/expool.c
@@ -463,21 +463,13 @@ ExpComputePartialHashForAddress(IN PVOID BaseAddress)
}
#if DBG
-FORCEINLINE
-BOOLEAN
-ExpTagAllowPrint(CHAR Tag)
-{
- if ((Tag >= 'a' && Tag <= 'z') ||
- (Tag >= 'A' && Tag <= 'Z') ||
- (Tag >= '0' && Tag <= '9') ||
- Tag == ' ' || Tag == '=' ||
- Tag == '?' || Tag == '@')
- {
- return TRUE;
- }
-
- return FALSE;
-}
+/*
+ * FORCEINLINE
+ * BOOLEAN
+ * ExpTagAllowPrint(CHAR Tag);
+ */
+#define ExpTagAllowPrint(Tag) \
+ ((Tag) >= 0x20 /* Space */ && (Tag) <= 0x7E /* Tilde */)
#ifdef KDBG
#define MiDumperPrint(dbg, fmt, ...) \
@@ -587,7 +579,7 @@ MiDumpPoolConsumers(BOOLEAN CalledFromDbg, ULONG Tag, ULONG Mask,
ULONG Flags)
{
if (Verbose)
{
- MiDumperPrint(CalledFromDbg,
"%x\t%ld\t\t%ld\t\t%ld\t\t%ld\t\t%ld\t\t%ld\t\t%ld\t\t%ld\n",
TableEntry->Key,
+ MiDumperPrint(CalledFromDbg,
"0x%08x\t%ld\t\t%ld\t\t%ld\t\t%ld\t\t%ld\t\t%ld\t\t%ld\t\t%ld\n",
TableEntry->Key,
TableEntry->NonPagedAllocs,
TableEntry->NonPagedFrees,
(TableEntry->NonPagedAllocs -
TableEntry->NonPagedFrees), TableEntry->NonPagedBytes,
TableEntry->PagedAllocs,
TableEntry->PagedFrees,
@@ -595,7 +587,7 @@ MiDumpPoolConsumers(BOOLEAN CalledFromDbg, ULONG Tag, ULONG Mask,
ULONG Flags)
}
else
{
- MiDumperPrint(CalledFromDbg,
"%x\t%ld\t\t%ld\t\t%ld\t\t%ld\n", TableEntry->Key,
+ MiDumperPrint(CalledFromDbg,
"0x%08x\t%ld\t\t%ld\t\t%ld\t\t%ld\n", TableEntry->Key,
TableEntry->NonPagedAllocs,
TableEntry->NonPagedBytes,
TableEntry->PagedAllocs,
TableEntry->PagedBytes);
}