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);
                     }