https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f5e86c0fd3488a3c38fe53...
commit f5e86c0fd3488a3c38fe53e5568a8c00784f1ed5 Author: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org AuthorDate: Sun Oct 27 01:19:11 2019 +0200 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@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-exa... 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); }