From: Serge Gautherie Date: Wed, 25 Jan 2017 02:50:23 +0100 Subject: [NTOSKRNL] MmSpecialPoolTag: Document (special) values. MmUseSpecialPool(): Support "MmSpecialPoolTag == '*'" (= all pools). CORE-12711 diff --git a/reactos/ntoskrnl/mm/ARM3/pool.c b/reactos/ntoskrnl/mm/ARM3/pool.c index f3d0315..cdffd94 100644 --- a/reactos/ntoskrnl/mm/ARM3/pool.c +++ b/reactos/ntoskrnl/mm/ARM3/pool.c @@ -24,6 +24,11 @@ PFN_NUMBER MiStartOfInitialPoolFrame, MiEndOfInitialPoolFrame; KGUARDED_MUTEX MmPagedPoolMutex; MM_PAGED_POOL_INFO MmPagedPoolInfo; SIZE_T MmAllocatedNonPagedPool; +/* + * 0 (default) or -1 disable Special Pool, + * '*' means all pools, + * tag must be set in reverse order ("ATag" -> "gaTA"). +*/ ULONG MmSpecialPoolTag; ULONG MmConsumedPoolPercentage; BOOLEAN MmProtectFreedNonPagedPool; diff --git a/reactos/ntoskrnl/mm/ARM3/special.c b/reactos/ntoskrnl/mm/ARM3/special.c index 5a13c93..30e93d4 100644 --- a/reactos/ntoskrnl/mm/ARM3/special.c +++ b/reactos/ntoskrnl/mm/ARM3/special.c @@ -80,6 +80,10 @@ MmUseSpecialPool(SIZE_T NumberOfBytes, ULONG Tag) if (NumberOfBytes > (PAGE_SIZE - sizeof(POOL_HEADER))) return FALSE; + /* '*' means all pools. */ + if (MmSpecialPoolTag == (ULONG) '*') + return TRUE; + return Tag == MmSpecialPoolTag; }